Fix fallback fesetenv and feupdateenv on FE_NOMASK_ENV
Joseph S. Myers
joseph@codesourcery.com
Wed Jun 25 17:29:00 GMT 2014
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.
2014-06-25 Joseph Myers <joseph@codesourcery.com>
[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.
diff --git a/math/fesetenv.c b/math/fesetenv.c
index acfe5f4..9bf42c0 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 13d819e..08d8ae2 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;
}
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list