about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-12-09 22:37:08 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-12-09 22:37:08 +0000
commitf517e06ab71e07b24bf085063b0ba2d072da4a56 (patch)
tree69f4238e386230177b71657313b11843cfe706fe
parentca2fcac629b9b7781ccd52685b28741d89ff128f (diff)
downloadglibc-f517e06ab71e07b24bf085063b0ba2d072da4a56.tar.gz
glibc-f517e06ab71e07b24bf085063b0ba2d072da4a56.tar.xz
glibc-f517e06ab71e07b24bf085063b0ba2d072da4a56.zip
Fix ldbl-128ibm sinhl spurious overflows (bug 19350).
The ldbl-128ibm implementation of sinhl uses a slightly too small
overflow threshold (similar to bug 16407 for coshl).  This patch fixes
it to use a safe threshold (so that values whose high part is above
the value compared with definitely result in an overflow in all
rounding modes).

Tested for powerpc.

	[BZ #19350]
	* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c (__ieee754_sinhl):
	Increase overflow threshold.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_sinhl.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b76c54b9a5..1c7b198d54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2015-12-09  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #19350]
+	* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c (__ieee754_sinhl):
+	Increase overflow threshold.
+
 	[BZ #19349]
 	* sysdeps/ieee754/ldbl-128ibm/s_tanhl.c (__tanhl): Return argument
 	when small.
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c b/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
index 29700ad4ab..67d9d24ce7 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
@@ -67,7 +67,7 @@ __ieee754_sinhl(long double x)
 	if (ix < 0x40862e42fefa39efLL)  return h*__ieee754_expl(fabsl(x));
 
     /* |x| in [log(maxdouble), overflowthresold] */
-	if (ix <= 0x408633ce8fb9f87dLL) {
+	if (ix <= 0x408633ce8fb9f87eLL) {
 	    w = __ieee754_expl(0.5*fabsl(x));
 	    t = h*w;
 	    return t*w;