2
0
mirror of git://sourceware.org/git/glibc.git synced 2025-04-24 14:41:06 +08:00

Make ARM fesetenv (FE_NOMASK_ENV) detect failure (bug 14866).

This commit is contained in:
Joseph Myers 2012-11-21 20:26:56 +00:00
parent 09e958ed42
commit ad35f2dd75
3 changed files with 17 additions and 1 deletions

2
NEWS

@ -21,7 +21,7 @@ Version 2.17
14638, 14645, 14648, 14652, 14660, 14661, 14669, 14672, 14683, 14694,
14716, 14719, 14743, 14767, 14783, 14784, 14785, 14793, 14796, 14797,
14801, 14805, 14807, 14809, 14811, 14815, 14821, 14824, 14828, 14831,
14835, 14838, 14856.
14835, 14838, 14856, 14866.
* Port to ARM AArch64 contributed by Linaro.

@ -1,3 +1,9 @@
2012-11-21 Joseph Myers <joseph@codesourcery.com>
[BZ #14866]
* sysdeps/arm/fesetenv.c (__fesetenv): Test whether bits for
trapping exceptions were successfully set for FE_NOMASK_ENV.
2012-11-14 Marcus Shawcroft <marcus.shawcroft@linaro.org>
* sysdeps/unix/sysv/linux/arm/Makefile (libcrypt-sysdep_routines): Add

@ -40,6 +40,16 @@ __fesetenv (const fenv_t *envp)
_FPU_SETCW (temp);
if (envp == FE_NOMASK_ENV)
{
/* VFPv3 and VFPv4 do not support trapping exceptions, so
test whether the relevant bits were set and fail if
not. */
_FPU_GETCW (temp);
if ((temp & _FPU_IEEE) != _FPU_IEEE)
return 1;
}
/* Success. */
return 0;
}