Tweak workaround for floating exceptions on macOS.
authorChris Hanson <org/chris-hanson/cph>
Mon, 26 Aug 2019 03:16:36 +0000 (20:16 -0700)
committerChris Hanson <org/chris-hanson/cph>
Mon, 26 Aug 2019 03:16:36 +0000 (20:16 -0700)
src/microcode/floenv.h

index 35ec37ab0bb4a0dd29018447ac6bfb9e8e870e55..3d0189c28c5d0ac5d310f899adc81cbc1b56b49b 100644 (file)
@@ -41,12 +41,20 @@ USA.
 #    define scheme_fexcept_t fexcept_t
 #  endif
 #  ifdef __APPLE__
-#    undef HAVE_FEGETEXCEPT
+#    ifndef HAVE_FEGETEXCEPT
+#      define HAVE_FEGETEXCEPT
+#    endif
 #    define HAVE_FEENABLEEXCEPT
 #    define HAVE_FEDISABLEEXCEPT
 
 // From http://www-personal.umich.edu/~williams/archive/computation/fe-handling-example.c
 
+inline int fegetexcept(void)
+{
+  fenv_t fenv;
+  return (fegetenv (&fenv)) ? -1 : (fenv.__control & FE_ALL_EXCEPT);
+}
+
 inline int feenableexcept(unsigned int excepts)
 {
     fenv_t fenv;