aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--math/Makefile6
-rw-r--r--math/libm-test.inc2
3 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fd2ea8ae08..94caf57615 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-06-10 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #20240]
+ * math/Makefile (CFLAGS-s_modf.c): New variable.
+ (CFLAGS-s_modff.c): Likewise.
+ (CFLAGS-s_modfl.c): Likewise.
+ * math/libm-test.inc (modf_test_data): Add sNaN tests.
+
2016-06-09 Carlos O'Donell <carlos@redhat.com>
[BZ #20215]
diff --git a/math/Makefile b/math/Makefile
index f0265bb640..6cd3cf1f65 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -302,6 +302,12 @@ ifneq ($(long-double-fcts),yes)
math-CPPFLAGS += -DNO_LONG_DOUBLE -D_Mlong_double_=double
endif
+# These files quiet sNaNs in a way that is optimized away without
+# -fsignaling-nans.
+CFLAGS-s_modf.c += -fsignaling-nans
+CFLAGS-s_modff.c += -fsignaling-nans
+CFLAGS-s_modfl.c += -fsignaling-nans
+
# The -lieee library is actually an object file.
# The module just defines the _LIB_VERSION_ variable.
# It's not a library to make sure it is linked in instead of s_lib_version.o.
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 2df6f29a34..3d901ae96a 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -9759,6 +9759,8 @@ static const struct test_fF_f1_data modf_test_data[] =
TEST_fF_f1 (modf, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fF_f1 (modf, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fF_f1 (modf, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fF_f1 (modf, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
+ TEST_fF_f1 (modf, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_fF_f1 (modf, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fF_f1 (modf, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fF_f1 (modf, min_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),