More fixes to floenv.h.
authorTaylor R Campbell <campbell@mumble.net>
Mon, 1 Nov 2010 06:56:06 +0000 (06:56 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Mon, 1 Nov 2010 06:56:06 +0000 (06:56 +0000)
src/microcode/floenv.h

index 52468db247ba38a9ff7b40c3b2b28fc7ada77d69..40358f137dd6be6b0f4c7fbe881e0a06ab0aba7d 100644 (file)
@@ -94,6 +94,11 @@ USA.
 #    define FE_INEXACT FP_X_IMP
 #  endif
 
+#  ifndef FE_ALL_EXCEPT
+#    define FE_ALL_EXCEPT                      \
+  (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
+#  endif
+
 /* FP_X_IOV?  */
 
 #  ifndef HAVE_FEXCEPT_T
@@ -117,7 +122,7 @@ typedef fp_except fexcept_t;
 /* This isn't right -- it doesn't necessarily actually raise the
    exception until some floating-point operation is performed.  */
 #    define feraiseexcept(excepts)             \
-  ((fpsetsticky ((fpgetsticky ()) || (FE_ALL_EXCEPT & (excepts)))), 0)
+  ((fpsetsticky ((fpgetsticky ()) | (FE_ALL_EXCEPT & (excepts)))), 0)
 #  endif
 
 #  ifndef HAVE_FEGETEXCEPTFLAG
@@ -142,7 +147,7 @@ typedef fp_except fexcept_t;
 #  ifndef HAVE_FEENABLEEXCEPT
 #    define HAVE_FEENABLEEXCEPT
 #    define feenableexcept(excepts)            \
-  (fpsetmask ((fpgetmask ()) || (FE_ALL_EXCEPT & (excepts))))
+  (fpsetmask ((fpgetmask ()) | (FE_ALL_EXCEPT & (excepts))))
 #  endif
 
 #  ifndef HAVE_FEDISABLEEXCEPT