On Mon, 13 Feb 2023, Niels Möller wrote:
I got the impression that someone was building GMP with -Werror.
Then I agree that it is their problem.
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
[...]
Is the pragma a documented / recommended way to disable the warning?
The numbers seem stable, and the pragma is advertised by Microsoft
(https://learn.microsoft.com/en-us/cpp/preprocessor/warning?view=msvc-170)
and used by many projects
(https://github.com/CGAL/cgal/blob/master/Number_types/include/CGAL/gmp.h).
You are supposed to use push/pop as well, though, in a header.
#ifdef _MSC_VER
# pragma warning(push)
# pragma warning(disable:4146)
#endif
... code ...
#ifdef _MSC_VER
# pragma warning(pop)
#endif
Another option, if it is just the one place in gmp.h, would be to replace
-X with 0-X (or the uglier ~X+1 but that does not seem necessary).
--
Marc Glisse
_______________________________________________
gmp-bugs mailing list
gmp-bugs@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-bugs