fenv: under/overflow may raise inexact too
[libc-test] / src / math / fenv.c
index 91b6378..178b32e 100644 (file)
@@ -53,9 +53,18 @@ static void test_except()
                if (r)
                        error("feraiseexcept(%s) returned %d\n", te[i].name, r);
                r = fetestexcept(FE_ALL_EXCEPT);
-               if (r != te[i].i)
+               if (r != te[i].i) {
+#if defined FE_OVERFLOW && defined FE_INEXACT
+                       if (te[i].i == FE_OVERFLOW && r == FE_OVERFLOW|FE_INEXACT)
+                               continue;
+#endif
+#if defined FE_UNDERFLOW && defined FE_INEXACT
+                       if (te[i].i == FE_UNDERFLOW && r == FE_UNDERFLOW|FE_INEXACT)
+                               continue;
+#endif
                        error("feraiseexcept(%s) want %d got %d\n",
                                te[i].name, te[i].i, r);
+               }
        }
 
        r = feraiseexcept(FE_ALL_EXCEPT);