Replace fpgetmask() with fedisableexcept()
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 20 Jan 2016 21:27:34 +0000 (22:27 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 20 Jan 2016 21:27:34 +0000 (22:27 +0100)
Issue #24520: On FreeBSD, fpgetmask() was deprecated long time ago.
fedisableexcept() is now preferred.

Programs/python.c

index 2e5e4e368f0e8d668c481fa9873561a68976954e..37b10b837e8845c65cab1094161a3c0cb419dc27 100644 (file)
@@ -4,7 +4,7 @@
 #include <locale.h>
 
 #ifdef __FreeBSD__
-#include <floatingpoint.h>
+#include <fenv.h>
 #endif
 
 #ifdef MS_WINDOWS
@@ -23,9 +23,6 @@ main(int argc, char **argv)
     wchar_t **argv_copy2;
     int i, res;
     char *oldloc;
-#ifdef __FreeBSD__
-    fp_except_t m;
-#endif
 
     argv_copy = (wchar_t **)PyMem_RawMalloc(sizeof(wchar_t*) * (argc+1));
     argv_copy2 = (wchar_t **)PyMem_RawMalloc(sizeof(wchar_t*) * (argc+1));
@@ -40,8 +37,7 @@ main(int argc, char **argv)
      * exceptions by default.  Here we disable them.
      */
 #ifdef __FreeBSD__
-    m = fpgetmask();
-    fpsetmask(m & ~FP_X_OFL);
+    fedisableexcept(FE_OVERFLOW);
 #endif
 
     oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL));