summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-07-17 17:56:43 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-07-17 17:56:43 +0000
commit831b9896d8e957580591a3cbe11dcd5ac6743ba2 (patch)
tree5242f61fab491bec10b154d470f4b9694a393824 /math
parentb21c2d5020d85596c0391e03054d7fe031ffd60b (diff)
downloadglibc-831b9896d8e957580591a3cbe11dcd5ac6743ba2.tar.gz
glibc-831b9896d8e957580591a3cbe11dcd5ac6743ba2.tar.xz
glibc-831b9896d8e957580591a3cbe11dcd5ac6743ba2.zip
Fix fallback fesetenv and feupdateenv on FE_NOMASK_ENV (bug 17088).
This patch fixes bug 17088, fallback fesetenv and feupdateenv not
giving an error for an FE_NOMASK_ENV argument when it requires traps
to be enabled.  (This is the bug tested for by test-fenv-return.c.)

Tested mips64 soft-float.

	[BZ #17088]
	* math/fesetenv.c (__fesetenv)
	[FE_NOMASK_ENV && FE_ALL_EXCEPT != 0]: Return 1 for FE_NOMASK_ENV.
	* math/feupdateenv.c (__feupdateenv)
	[FE_NOMASK_ENV && FE_ALL_EXCEPT != 0]: Likewise.
Diffstat (limited to 'math')
-rw-r--r--math/fesetenv.c4
-rw-r--r--math/feupdateenv.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/math/fesetenv.c b/math/fesetenv.c
index acfe5f4889..9bf42c0f6c 100644
--- a/math/fesetenv.c
+++ b/math/fesetenv.c
@@ -23,6 +23,10 @@
 int
 __fesetenv (const fenv_t *envp)
 {
+#if defined FE_NOMASK_ENV && FE_ALL_EXCEPT != 0
+  if (envp == FE_NOMASK_ENV)
+    return 1;
+#endif
   /* Nothing to do.  */
   return 0;
 }
diff --git a/math/feupdateenv.c b/math/feupdateenv.c
index 13d819e479..08d8ae28a4 100644
--- a/math/feupdateenv.c
+++ b/math/feupdateenv.c
@@ -23,6 +23,10 @@
 int
 __feupdateenv (const fenv_t *envp)
 {
+#if defined FE_NOMASK_ENV && FE_ALL_EXCEPT != 0
+  if (envp == FE_NOMASK_ENV)
+    return 1;
+#endif
   /* Nothing to do.  */
   return 0;
 }