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.
This commit is contained in:
Joseph Myers 2015-12-09 22:37:08 +00:00
parent ca2fcac629
commit f517e06ab7
2 changed files with 5 additions and 1 deletions

View File

@ -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.

View File

@ -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;