math: fenv status flag fixes
[libc-test] / src / common / mtest.h
index 9218a75..d390d03 100644 (file)
@@ -102,10 +102,21 @@ float ulperrl(long double got, long double want, float dwant);
 static int checkexcept(int got, int want, int r)
 {
        if (r == RN)
+#if defined CHECK_INEXACT
+               return got == want;
+#elif defined CHECK_INEXACT_OMISSION
                return got == want || got == (want|INEXACT);
+#else
+               return (got|INEXACT) == (want|INEXACT);
+#endif
        return (got|INEXACT|UNDERFLOW) == (want|INEXACT|UNDERFLOW);
 }
 
+static int checkexceptall(int got, int want, int r)
+{
+       return got == want;
+}
+
 static int checkulp(float d, int r)
 {
        // TODO: we only care about >=1.5 ulp errors for now, should be 1.0