diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | math/libm-test.inc | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_jnl.c | 3 |
4 files changed, 15 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index c368d11f51..92e8546d1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-07-12 Marek Polacek <polacek@redhat.com> + + [BZ #14173] + * math/libm-test.inc (yn_test): Add test for BZ #14173. + * sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_ynl): Correct + loop condition. + 2012-07-12 Joseph Myers <joseph@codesourcery.com> [BZ #13717] diff --git a/NEWS b/NEWS index d66da32ff8..320b56c2e7 100644 --- a/NEWS +++ b/NEWS @@ -9,7 +9,8 @@ Version 2.17 * The following bugs are resolved with this release: - 6778, 14042, 14151, 14154, 14157, 14283, 14328, 14331, 14337, 14347 + 6778, 14042, 14151, 14154, 14157, 14173, 14283, 14328, 14331, 14337, + 14347 Version 2.16 diff --git a/math/libm-test.inc b/math/libm-test.inc index a9cc2bdca4..25a8f4111d 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -9015,8 +9015,11 @@ yn_test (void) TEST_ff_f (yn, 10, 2.0, -129184.542208039282635913145923304214L); TEST_ff_f (yn, 10, 10.0, -0.359814152183402722051986577343560609L); - END (yn); + /* Check whether yn returns correct value for LDBL_MIN, DBL_MIN, + and FLT_MIN. See Bug 14173. */ + TEST_ff_f (yn, 10, min_value, minus_infty, OVERFLOW_EXCEPTION); + END (yn); } diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c index 2e206e7e22..36b0d8ba44 100644 --- a/sysdeps/ieee754/ldbl-96/e_jnl.c +++ b/sysdeps/ieee754/ldbl-96/e_jnl.c @@ -360,7 +360,8 @@ __ieee754_ynl (int n, long double x) b = __ieee754_y1l (x); /* quit if b is -inf */ GET_LDOUBLE_WORDS (se, i0, i1, b); - for (i = 1; i < n && se != 0xffff; i++) + /* Use 0xffffffff since GET_LDOUBLE_WORDS sign-extends SE. */ + for (i = 1; i < n && se != 0xffffffff; i++) { temp = b; b = ((long double) (i + i) / x) * b - a; |