Since commit 0ce3c32, compilation with the /permissive flag in Microsoft Visual C++ (MSVC), the FloatingPointUtils::ilogb function encounters a C4146 error. This error arises due to the unary minus operator being applied to an unsigned type, particularly when dealing with the value -2147483648. I have personally tested the code with INT_MIN and INT_MAX constants, and the code compiles without any errors.
error C4146: unary minus operator applied to unsigned type, result still unsigned
error C4146: unary minus operator applied to unsigned type, result still unsigned
Description
Since commit 0ce3c32, compilation with the /permissive flag in Microsoft Visual C++ (MSVC), the FloatingPointUtils::ilogb function encounters a C4146 error. This error arises due to the unary minus operator being applied to an unsigned type, particularly when dealing with the value -2147483648. I have personally tested the code with INT_MIN and INT_MAX constants, and the code compiles without any errors.
Log: build.log
Reproduction Steps
Expected behavior
It compiles.
Actual behavior
Regression?
0ce3c32
Known Workarounds
Configuration
Architecture : x64 OS : Windows Server 2022 Datacenter
Other information
No response