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.
This commit is contained in:
Joseph Myers 2014-07-17 17:56:43 +00:00
parent b21c2d5020
commit 831b9896d8
4 changed files with 16 additions and 2 deletions

View File

@ -1,5 +1,11 @@
2014-07-17 Joseph Myers <joseph@codesourcery.com> 2014-07-17 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.
* sysdeps/unix/sysv/linux/s390/kernel-features.h: New file. * sysdeps/unix/sysv/linux/s390/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h [__s390__] * sysdeps/unix/sysv/linux/kernel-features.h [__s390__]
(__ASSUME_SOCKETCALL): Do not define. (__ASSUME_SOCKETCALL): Do not define.

4
NEWS
View File

@ -21,8 +21,8 @@ Version 2.20
16882, 16885, 16888, 16890, 16912, 16915, 16916, 16917, 16918, 16922, 16882, 16885, 16888, 16890, 16912, 16915, 16916, 16917, 16918, 16922,
16927, 16928, 16932, 16943, 16958, 16965, 16966, 16967, 16977, 16978, 16927, 16928, 16932, 16943, 16958, 16965, 16966, 16967, 16977, 16978,
16984, 16990, 16996, 17009, 17022, 17031, 17042, 17048, 17050, 17058, 16984, 16990, 16996, 17009, 17022, 17031, 17042, 17048, 17050, 17058,
17061, 17062, 17069, 17075, 17079, 17084, 17086, 17092, 17097, 17125, 17061, 17062, 17069, 17075, 17079, 17084, 17086, 17088, 17092, 17097,
17135, 17137, 17153. 17125, 17135, 17137, 17153.
* Optimized strchr implementation for AArch64. Contributed by ARM Ltd. * Optimized strchr implementation for AArch64. Contributed by ARM Ltd.

View File

@ -23,6 +23,10 @@
int int
__fesetenv (const fenv_t *envp) __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. */ /* Nothing to do. */
return 0; return 0;
} }

View File

@ -23,6 +23,10 @@
int int
__feupdateenv (const fenv_t *envp) __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. */ /* Nothing to do. */
return 0; return 0;
} }