diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | math/fsetexcptflg.c | 5 | ||||
-rw-r--r-- | math/test-fexcept.c | 8 |
3 files changed, 17 insertions, 3 deletions
@@ -1,3 +1,10 @@ +2017-01-05 Joseph Myers <joseph@codesourcery.com> + + [BZ #21028] + * math/fsetexcptflg.c (__fesetexceptflag): Always return 0. + * math/test-fexcept.c (test_set): Allow failure of feraiseexcept + if EXCEPTION_TESTS returns false. + 2017-01-05 Adhemerval Zanella <adhemerval.zanella@linaro.org> [BZ #20558] diff --git a/math/fsetexcptflg.c b/math/fsetexcptflg.c index 2e8237ee32..e79095b04e 100644 --- a/math/fsetexcptflg.c +++ b/math/fsetexcptflg.c @@ -23,8 +23,9 @@ int __fesetexceptflag (const fexcept_t *flagp, int excepts) { - /* This always fails unless nothing needs to be done. */ - return (excepts != 0); + /* This always succeeds, as all exceptions are always clear + (including in the saved state) so nothing needs to be done. */ + return 0; } #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) strong_alias (__fesetexceptflag, __old_fesetexceptflag) diff --git a/math/test-fexcept.c b/math/test-fexcept.c index 6aa54b49b4..854080173a 100644 --- a/math/test-fexcept.c +++ b/math/test-fexcept.c @@ -61,7 +61,13 @@ test_set (int initial, const fexcept_t *saved, int mask, int expected) if (ret != 0) { puts ("feraiseexcept failed"); - result = 1; + if (initial == 0 || EXCEPTION_TESTS (float)) + { + puts ("failure of feraiseexcept was unexpected"); + result = 1; + } + else + puts ("failure of feraiseexcept OK, skipping further tests"); return result; } ret = fesetexceptflag (saved, mask); |