From 0fcad3e243575f5b316a1b630fcd9ed2396fd0c8 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 29 Feb 2012 20:49:20 +0000 Subject: [PATCH] Add test for bug 5794 (incorrect expm1 overflow). --- ChangeLog | 5 +++++ math/libm-test.inc | 4 ++++ sysdeps/i386/fpu/libm-test-ulps | 3 +++ sysdeps/x86_64/fpu/libm-test-ulps | 5 +++++ 4 files changed, 17 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3d3f89034c..59fc3c0d7b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2012-02-29 Joseph Myers + [BZ #5794] + * math/libm-test.inc (expm1_test): Add test for bug 5794. + * sysdeps/i386/fpu/libm-test-ulps: Update. + * sysdeps/x86_64/fpu/libm-test-ulps: Likewise. + * sysdeps/i386/fpu/libm-test-ulps: Reduce some expected errors. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise. diff --git a/math/libm-test.inc b/math/libm-test.inc index 54d1aca7d5..3510b61303 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -2602,6 +2602,10 @@ expm1_test (void) TEST_f_f (expm1, 1, M_El - 1.0); TEST_f_f (expm1, 0.75L, 1.11700001661267466854536981983709561L); +#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384 + TEST_f_f (expm1, 11356.25L, 9.05128237311923300051376115753226014206e+4931L); +#endif + errno = 0; TEST_f_f (expm1, 100000.0, plus_infty); check_int ("errno for expm1(large) == ERANGE", errno, ERANGE, 0, 0, 0); diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index 68e1fa9dd4..18097a51c6 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -452,6 +452,8 @@ ldouble: 8 # expm1 Test "expm1 (1) == M_El - 1.0": ildouble: 1 +Test "expm1 (11356.25) == 9.05128237311923300051376115753226014206e+4931": +ldouble: 1 # gamma Test "gamma (-0.5) == log(2*sqrt(pi))": @@ -1173,6 +1175,7 @@ ldouble: 8 Function: "expm1": ildouble: 1 +ldouble: 1 Function: "gamma": double: 1 diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index 1bd06d1909..eb67e91b97 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -511,6 +511,9 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "expm1 (11356.25) == 9.05128237311923300051376115753226014206e+4931": +ildouble: 1 +ldouble: 1 # gamma Test "gamma (-0.5) == log(2*sqrt(pi))": @@ -1265,6 +1268,8 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: "gamma": ildouble: 1