about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--NEWS2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_log1pl.c4
3 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 42c1701131..3d3440fe64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index ae89162d81..654217c49f 100644
--- a/NEWS
+++ b/NEWS
@@ -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)