[MDEV-22865] compilation failure on win32-debug Created: 2020-06-10  Updated: 2020-06-11  Resolved: 2020-06-11

Status: Closed
Project: MariaDB Server
Component/s: Compiling
Affects Version/s: 10.5
Fix Version/s: 10.5.4

Type: Bug Priority: Blocker
Reporter: Sergei Golubchik Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-22841 ut_new_get_key_by_file is unnecessari... Closed

 Description   

    68>D:\win32-debug\build\src\storage\innobase\include\sync0types.h(611,1): error C2220:  warning treated as error - no 'object' file generated (compiling source file D:\win32-debug\build\src\storage\innobase\btr\btr0btr.cc) [D:\win32-debug\build\storage\innobase\innobase.vcxproj]
    68>D:\win32-debug\build\src\storage\innobase\include\sync0types.h(611,1): warning C4307:  '*': integral constant overflow (compiling source file D:\win32-debug\build\src\storage\innobase\btr\btr0btr.cc) [D:\win32-debug\build\storage\innobase\innobase.vcxproj]



 Comments   
Comment by Marko Mäkelä [ 2020-06-11 ]

I believe that this was broken by MDEV-22841. I notified the author wlad yesterday, and before leaving for vacation today, he made the 32-bit non-debug build pass.

I am reassigning this to kevg, because he reviewed MDEV-22841 and because the author is on vacation. The problem should be that uint is too small on 32-bit systems.

Comment by Marko Mäkelä [ 2020-06-11 ]

Apparently the problem was that some versions of Microsoft Visual Studio would claim that 33 * h overflows uint32_t in the constexpr function evaluation when compiling a 32-bit executable. My fix of uint64_t{33} * h seems to have worked.

Generated at Thu Feb 08 09:18:03 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.