summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--math/libm-test-support.c7
2 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fa0ac20c19..464e65d101 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2017-06-23  Joseph Myers  <joseph@codesourcery.com>
 
+	* libm-test-support.c (check_float_internal): Clear exceptions at
+	end of function.
+	(check_int): Likewise.
+	(check_long): Likewise.
+	(check_bool): Likewise.
+	(check_longlong): Likewise.
+	(check_intmax_t): Likewise.
+	(check_uintmax_t): Likewise.
+
 	* sysdeps/x86/fpu/bits/fenv.h [_LIBC] (__feraiseexcept_renamed):
 	Do not declare.
 	* sysdeps/x86/fpu/include/bits/fenv.h [_LIBC &&
diff --git a/math/libm-test-support.c b/math/libm-test-support.c
index 7612d394d6..078d30743d 100644
--- a/math/libm-test-support.c
+++ b/math/libm-test-support.c
@@ -718,6 +718,7 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected,
 
  out:
   fpstack_test (test_name);
+  feclearexcept (FE_ALL_EXCEPT);
   errno = 0;
 }
 
@@ -795,6 +796,7 @@ check_int (const char *test_name, int computed, int expected,
   update_stats (ok);
  out:
   fpstack_test (test_name);
+  feclearexcept (FE_ALL_EXCEPT);
   errno = 0;
 }
 
@@ -828,6 +830,7 @@ check_long (const char *test_name, long int computed, long int expected,
   update_stats (ok);
  out:
   fpstack_test (test_name);
+  feclearexcept (FE_ALL_EXCEPT);
   errno = 0;
 }
 
@@ -861,6 +864,7 @@ check_bool (const char *test_name, int computed, int expected,
   update_stats (ok);
  out:
   fpstack_test (test_name);
+  feclearexcept (FE_ALL_EXCEPT);
   errno = 0;
 }
 
@@ -895,6 +899,7 @@ check_longlong (const char *test_name, long long int computed,
   update_stats (ok);
  out:
   fpstack_test (test_name);
+  feclearexcept (FE_ALL_EXCEPT);
   errno = 0;
 }
 
@@ -928,6 +933,7 @@ check_intmax_t (const char *test_name, intmax_t computed,
   update_stats (ok);
  out:
   fpstack_test (test_name);
+  feclearexcept (FE_ALL_EXCEPT);
   errno = 0;
 }
 
@@ -961,6 +967,7 @@ check_uintmax_t (const char *test_name, uintmax_t computed,
   update_stats (ok);
  out:
   fpstack_test (test_name);
+  feclearexcept (FE_ALL_EXCEPT);
   errno = 0;
 }