This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Fix fallback fesetenv and feupdateenv on FE_NOMASK_ENV
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Wed, 25 Jun 2014 17:29:08 +0000
- Subject: Fix fallback fesetenv and feupdateenv on FE_NOMASK_ENV
- Authentication-results: sourceware.org; auth=none
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