Marc Glisse <marc.gli...@inria.fr> writes: > I think changing it in public headers (gmp.h, gmpxx.h) is the > important part, changing it in internal source files is less of an > issue.
Good point. I got the impression that someone was building GMP with -Werror. Getting this by just *using* gmp and including gmp.h is a different setting with different tradeoffs. It might make some sense to add something like #ifdef _MSC_VER # pragma warning(disable:4146) #endif to the installed gmp.h, if that is deemed not too brittle (I don't know how stable warning numbers are, or if there's some better way). I got _MCS_VER from a quick look at https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170 > To be fair, it is often not the user who enables /WX but the Visual > Studio IDE that enables /SDL by default, which turns some warnings > that Microsoft deems relevant to security into errors. And Microsoft's > reply in bug reports is "disable this option if you don't like it". Is the pragma a documented / recommended way to disable the warning? The warning would make more sense to me if narrowed to cases where the result is assigned/used in some signed context where it matters for the result. E.g., if long is a larger size than int, warning for code like below seems a lot more reasonable than warning for gmp's use case. #include <stdio.h> int main (int argc, char **argv) { unsigned int x = 17; signed long y = -x; printf("y = %ld\n", y); return 0; } -- Niels Möller. PGP key CB4962D070D77D7FCB8BA36271D8F1FF368C6677. Internet email is subject to wholesale government surveillance. _______________________________________________ gmp-bugs mailing list gmp-bugs@gmplib.org https://gmplib.org/mailman/listinfo/gmp-bugs