diff options
author | Joseph Myers <joseph@codesourcery.com> | 2012-11-21 20:26:56 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2012-11-21 20:26:56 +0000 |
commit | ad35f2dd750ed3e3f483409ef50b38ea19745002 (patch) | |
tree | 64d4f4be507055e344438505aee94c81c7ef3f81 /ports/sysdeps/arm | |
parent | 09e958ed423b99f97f5fd4b101964dfc9e3b32c0 (diff) | |
download | glibc-ad35f2dd750ed3e3f483409ef50b38ea19745002.tar glibc-ad35f2dd750ed3e3f483409ef50b38ea19745002.tar.gz glibc-ad35f2dd750ed3e3f483409ef50b38ea19745002.tar.bz2 glibc-ad35f2dd750ed3e3f483409ef50b38ea19745002.zip |
Make ARM fesetenv (FE_NOMASK_ENV) detect failure (bug 14866).
Diffstat (limited to 'ports/sysdeps/arm')
-rw-r--r-- | ports/sysdeps/arm/fesetenv.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ports/sysdeps/arm/fesetenv.c b/ports/sysdeps/arm/fesetenv.c index 2fad61da1a..e92f9f5ac8 100644 --- a/ports/sysdeps/arm/fesetenv.c +++ b/ports/sysdeps/arm/fesetenv.c @@ -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; } |