aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-10-06 15:14:26 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-10-06 15:14:26 +0000
commitd79b56892651fcfc1ae0f44d3d29d0fa03538ec1 (patch)
treea104e632dd2f035727115b98861f3cb0191d8557 /sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
parent3670da6bfb1ffd17d9bdce2d31d79656be0991b5 (diff)
downloadglibc-d79b56892651fcfc1ae0f44d3d29d0fa03538ec1.zip
glibc-d79b56892651fcfc1ae0f44d3d29d0fa03538ec1.tar.gz
glibc-d79b56892651fcfc1ae0f44d3d29d0fa03538ec1.tar.bz2
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.
Diffstat (limited to 'sysdeps/ieee754/ldbl-128ibm/s_log1pl.c')
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_log1pl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c b/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
index a0e24d7..ad9a1fe 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));
}