Fix ldbl-128 j0l, j1l, y0l, y1l for sNaN argument (bug 20151).

The ldbl-128 implementations of j0l, j1l, y0l, y1l (also used for
ldbl-128ibm) return an sNaN argument unchanged.  This patch fixes them
to add a NaN argument to itself to quiet it before return.

Tested for mips64.

	[BZ #20151]
	* sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee754_j0l): Add NaN
	argument to itself before returning result.
	(__ieee754_y0l): Likewise.
	* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise.
	(__ieee754_y1l).
This commit is contained in:
Joseph Myers 2016-05-26 20:55:03 +00:00
parent 960be82cc2
commit d73e7bdb3a
3 changed files with 11 additions and 4 deletions

View File

@ -1,5 +1,12 @@
2016-05-26 Joseph Myers <joseph@codesourcery.com>
[BZ #20151]
* sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee754_j0l): Add NaN
argument to itself before returning result.
(__ieee754_y0l): Likewise.
* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise.
(__ieee754_y1l).
* math/libm-test.inc (acosh_test_data): Add sNaN tests.
(atan_test_data): Likewise.
(ceil_test_data): Likewise.

View File

@ -683,7 +683,7 @@ __ieee754_j0l (long double x)
if (! isfinite (x))
{
if (x != x)
return x;
return x + x;
else
return 0.0L;
}
@ -831,7 +831,7 @@ long double
if (! isfinite (x))
{
if (x != x)
return x;
return x + x;
else
return 0.0L;
}

View File

@ -690,7 +690,7 @@ __ieee754_j1l (long double x)
if (! isfinite (x))
{
if (x != x)
return x;
return x + x;
else
return 0.0L;
}
@ -849,7 +849,7 @@ __ieee754_y1l (long double x)
if (! isfinite (x))
{
if (x != x)
return x;
return x + x;
else
return 0.0L;
}