From: Joseph Myers Date: Tue, 6 Oct 2015 15:14:26 +0000 (+0000) Subject: Fix ldbl-128ibm log1pl (-1) sign of infinity (bug 19076). X-Git-Tag: glibc-2.23~402 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d79b56892651fcfc1ae0f44d3d29d0fa03538ec1;p=thirdparty%2Fglibc.git Fix ldbl-128ibm log1pl (-1) sign of infinity (bug 19076). The ldbl-128ibm implementation of log1pl produces an infinity with the wrong sign for log1pl (-1) in FE_DOWNWARD mode. This patch fixes this by changing a division (-1.0L / (x - x)) (incorrect in FE_DOWNWARD mode) to (-1.0L / 0.0L) (correct in all rounding modes). Tested for powerpc. [BZ #19076] * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Divide by constant 0.0L when computing infinite result. --- diff --git a/ChangeLog b/ChangeLog index 6cb9b73dc60..17388a79278 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-10-06 Joseph Myers + + [BZ #19076] + * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Divide by + constant 0.0L when computing infinite result. + 2015-10-06 Florian Weimer [BZ #10432] diff --git a/NEWS b/NEWS index 3852e7f3e1f..b93a5dc4e96 100644 --- a/NEWS +++ b/NEWS @@ -18,7 +18,7 @@ Version 2.23 18820, 18823, 18824, 18825, 18857, 18863, 18870, 18872, 18873, 18875, 18887, 18921, 18951, 18952, 18956, 18961, 18966, 18967, 18969, 18970, 18977, 18980, 18981, 18985, 19003, 19012, 19016, 19018, 19032, 19046, - 19049, 19050, 19059, 19071. + 19049, 19050, 19059, 19071, 19076. * The obsolete header has been removed. Programs that require this header must be updated to use instead. diff --git a/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c b/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c index a0e24d7f220..ad9a1fe20f4 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c @@ -149,7 +149,7 @@ __log1pl (long double xm1) if (x <= 0.0L) { if (x == 0.0L) - return (-1.0L / (x - x)); + return (-1.0L / 0.0L); else return (zero / (x - x)); }