A unary minus operator was applied to an unsigned type - conversion from 64 Bit to 32 Bit

Marc Glisse marc.glisse at inria.fr
Tue Sep 3 13:28:24 CEST 2024


On Tue, 3 Sep 2024, Vincent Lefevre wrote:

> Well, GCC also has warnings, such as -Wconversion (though it is
> currently broken), for suspicious code, which could be used together
> with -Werror.

Yes, but -Werror is not enabled by default.

> I think that the end user should be able to use such warnings for
> *his own code*. So, if possible, public header files should be written
> in such a way to avoid warnings provided by well-known compilers.

https://learn.microsoft.com/en-us/cpp/build/reference/external-external-headers-diagnostics?view=msvc-170
/external plays a role similar to -isystem with gcc/clang.
There are also various pragmas that can be used around the inclusion of 
the header.

(For C++, gcc has become much worse than MSVC, its recent 
optimization-based warnings have false positives all over the place and 
are almost impossible to work around)

> I don't think that just adding a cast to avoid an implicit conversion
> can be regarded as obfuscating the code. On the contrary, IMHO,
> an implicit conversion that may change the value is some kind of
> obfuscation.

I am not opposed to adding the cast, I was mostly pointing out that the 
-unsigned issue was well known and the developers declined to make a 
change in the past.

-- 
Marc Glisse


More information about the gmp-bugs mailing list