aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-06-09 17:24:52 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-06-09 17:24:52 +0000
commitf8fc4b44942238dec3228c4e4d77553da2b3ec39 (patch)
tree3e10b7eec069e3f81851833941fd0a28a5a07755
parent59e53a78985be92134f126c5597d15a9998001d1 (diff)
downloadglibc-f8fc4b44942238dec3228c4e4d77553da2b3ec39.tar
glibc-f8fc4b44942238dec3228c4e4d77553da2b3ec39.tar.gz
glibc-f8fc4b44942238dec3228c4e4d77553da2b3ec39.tar.bz2
glibc-f8fc4b44942238dec3228c4e4d77553da2b3ec39.zip
Fix ldbl-128ibm expm1l (sNaN) (bug 20233).
The ldbl-128ibm version of expm1l returns sNaN for sNaN input. This patch fixes it to add such inputs to themselves so that qNaN is returned in this case. Tested for powerpc. [BZ #20233] * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Add NaN input to itself.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_expm1l.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d88f74d6b..6944ac57ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2016-06-09 Joseph Myers <joseph@codesourcery.com>
+ [BZ #20233]
+ * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Add NaN input
+ to itself.
+
[BZ #20232]
* sysdeps/ieee754/ldbl-128/s_expm1l.c (__expm1l): Add NaN input to
itself.
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c b/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
index 66f75e1c80..42d57c6eec 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
@@ -106,8 +106,8 @@ __expm1l (long double x)
/* Infinity (which must be negative infinity). */
if (((ix - 0x7ff00000) | lx) == 0)
return -1.0L;
- /* NaN. No invalid exception. */
- return x;
+ /* NaN. Invalid exception if signaling. */
+ return x + x;
}
/* expm1(+- 0) = +- 0. */