This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.24-621-gc6be839
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 9 Jan 2017 18:28:11 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.24-621-gc6be839
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via c6be839efded78768ad3c70d7f2e913a9fb8603c (commit)
from c35db50ff51480c39e5ce493561df1c4581da9fc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c6be839efded78768ad3c70d7f2e913a9fb8603c
commit c6be839efded78768ad3c70d7f2e913a9fb8603c
Author: Joseph Myers <joseph@codesourcery.com>
Date: Mon Jan 9 18:27:49 2017 +0000
Fix math/test-fenv for no-exceptions / no-rounding-modes configurations.
This patch fixes math/test-fenv.c to check EXCEPTION_TESTS and
ROUNDING_TESTS to avoid failing in cases where some exceptions or
rounding modes are defined but not supported at runtime.
Tested for mips64 soft float and for x86_64.
* math/test-fenv.c (fe_tests): Skip most tests when exceptions not
supported.
(feholdexcept_tests): Skip tests requiring exceptions or rounding
modes support if not supported.
diff --git a/ChangeLog b/ChangeLog
index 1454293..034cce9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2017-01-09 Joseph Myers <joseph@codesourcery.com>
+ * math/test-fenv.c (fe_tests): Skip most tests when exceptions not
+ supported.
+ (feholdexcept_tests): Skip tests requiring exceptions or rounding
+ modes support if not supported.
+
* sysdeps/unix/sysv/linux/microblaze/localplt.data (__pread64):
Add libc.so PLT entry.
(__tls_get_addr): Make ld.so PLT entry optional.
diff --git a/math/test-fenv.c b/math/test-fenv.c
index d698ec3..b24b3a1 100644
--- a/math/test-fenv.c
+++ b/math/test-fenv.c
@@ -208,6 +208,9 @@ fe_tests (void)
test_exceptions ("feclearexcept (FE_ALL_EXCEPT) clears all exceptions",
NO_EXC, 0);
+ /* Skip further tests here if exceptions not supported. */
+ if (!EXCEPTION_TESTS (float) && FE_ALL_EXCEPT != 0)
+ return;
/* raise all exceptions and test if all are raised */
feraiseexcept (FE_ALL_EXCEPT);
test_exceptions ("feraiseexcept (FE_ALL_EXCEPT) raises all exceptions",
@@ -657,8 +660,9 @@ feholdexcept_tests (void)
#ifdef FE_DIVBYZERO
feraiseexcept (FE_DIVBYZERO);
#endif
- test_exceptions ("feholdexcept_tests FE_DIVBYZERO test",
- DIVBYZERO_EXC, 0);
+ if (EXCEPTION_TESTS (float))
+ test_exceptions ("feholdexcept_tests FE_DIVBYZERO test",
+ DIVBYZERO_EXC, 0);
res = feholdexcept (&saved);
if (res != 0)
{
@@ -667,7 +671,7 @@ feholdexcept_tests (void)
}
#if defined FE_TONEAREST && defined FE_TOWARDZERO
res = fesetround (FE_TOWARDZERO);
- if (res != 0)
+ if (res != 0 && ROUNDING_TESTS (float, FE_TOWARDZERO))
{
printf ("fesetround failed: %d\n", res);
++count_errors;
@@ -676,8 +680,9 @@ feholdexcept_tests (void)
test_exceptions ("feholdexcept_tests 0 test", NO_EXC, 0);
#ifdef FE_INVALID
feraiseexcept (FE_INVALID);
- test_exceptions ("feholdexcept_tests FE_INVALID test",
- INVALID_EXC, 0);
+ if (EXCEPTION_TESTS (float))
+ test_exceptions ("feholdexcept_tests FE_INVALID test",
+ INVALID_EXC, 0);
#endif
res = feupdateenv (&saved);
if (res != 0)
@@ -693,15 +698,16 @@ feholdexcept_tests (void)
++count_errors;
}
#endif
- test_exceptions ("feholdexcept_tests FE_DIVBYZERO|FE_INVALID test",
- DIVBYZERO_EXC | INVALID_EXC, 0);
+ if (EXCEPTION_TESTS (float))
+ test_exceptions ("feholdexcept_tests FE_DIVBYZERO|FE_INVALID test",
+ DIVBYZERO_EXC | INVALID_EXC, 0);
feclearexcept (FE_ALL_EXCEPT);
#ifdef FE_INVALID
feraiseexcept (FE_INVALID);
#endif
#if defined FE_TONEAREST && defined FE_UPWARD
res = fesetround (FE_UPWARD);
- if (res != 0)
+ if (res != 0 && ROUNDING_TESTS (float, FE_UPWARD))
{
printf ("fesetround failed: %d\n", res);
++count_errors;
@@ -724,8 +730,9 @@ feholdexcept_tests (void)
test_exceptions ("feholdexcept_tests 0 2nd test", NO_EXC, 0);
#ifdef FE_INEXACT
feraiseexcept (FE_INEXACT);
- test_exceptions ("feholdexcept_tests FE_INEXACT test",
- INEXACT_EXC, 0);
+ if (EXCEPTION_TESTS (float))
+ test_exceptions ("feholdexcept_tests FE_INEXACT test",
+ INEXACT_EXC, 0);
#endif
res = feupdateenv (&saved2);
if (res != 0)
@@ -735,15 +742,16 @@ feholdexcept_tests (void)
}
#if defined FE_TONEAREST && defined FE_UPWARD
res = fegetround ();
- if (res != FE_UPWARD)
+ if (res != FE_UPWARD && ROUNDING_TESTS (float, FE_UPWARD))
{
printf ("feupdateenv didn't restore rounding mode: %d\n", res);
++count_errors;
}
fesetround (FE_TONEAREST);
#endif
- test_exceptions ("feholdexcept_tests FE_INEXACT|FE_INVALID test",
- INVALID_EXC | INEXACT_EXC, 0);
+ if (EXCEPTION_TESTS (float))
+ test_exceptions ("feholdexcept_tests FE_INEXACT|FE_INVALID test",
+ INVALID_EXC | INEXACT_EXC, 0);
feclearexcept (FE_ALL_EXCEPT);
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
math/test-fenv.c | 34 +++++++++++++++++++++-------------
2 files changed, 26 insertions(+), 13 deletions(-)
hooks/post-receive
--
GNU C Library master sources