diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_log1pl.c | 4 |
3 files changed, 7 insertions, 3 deletions
@@ -1,5 +1,9 @@ 2015-10-29 Joseph Myers <joseph@codesourcery.com> + [BZ #19189] + * sysdeps/ieee754/ldbl-128/s_log1pl.c (__log1pl): Make check for + non-finite argument handle arguments with negative sign. + * math/libm-test.inc (j0_test_data): Do not test sign of zero result from infinite argument. (j1_test_data): Likewise. @@ -21,7 +21,7 @@ Version 2.23 18966, 18967, 18969, 18970, 18977, 18980, 18981, 18982, 18985, 19003, 19007, 19012, 19016, 19018, 19032, 19046, 19048, 19049, 19050, 19059, 19071, 19074, 19076, 19077, 19078, 19079, 19085, 19086, 19088, 19094, - 19095, 19124, 19125, 19129, 19134, 19137, 19156, 19174, 19181. + 19095, 19124, 19125, 19129, 19134, 19137, 19156, 19174, 19181, 19189. * A defect in the malloc implementation, present since glibc 2.15 (2012) or glibc 2.10 via --enable-experimental-malloc (2009), could result in the diff --git a/sysdeps/ieee754/ldbl-128/s_log1pl.c b/sysdeps/ieee754/ldbl-128/s_log1pl.c index 9806ab6d63..b348f41e55 100644 --- a/sysdeps/ieee754/ldbl-128/s_log1pl.c +++ b/sysdeps/ieee754/ldbl-128/s_log1pl.c @@ -130,8 +130,8 @@ __log1pl (long double xm1) /* Test for NaN or infinity input. */ u.value = xm1; hx = u.parts32.w0; - if (hx >= 0x7fff0000) - return xm1; + if ((hx & 0x7fffffff) >= 0x7fff0000) + return xm1 + fabsl (xm1); /* log1p(+- 0) = +- 0. */ if (((hx & 0x7fffffff) == 0) |