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:
parent
960be82cc2
commit
d73e7bdb3a
|
@ -1,5 +1,12 @@
|
||||||
2016-05-26 Joseph Myers <joseph@codesourcery.com>
|
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.
|
* math/libm-test.inc (acosh_test_data): Add sNaN tests.
|
||||||
(atan_test_data): Likewise.
|
(atan_test_data): Likewise.
|
||||||
(ceil_test_data): Likewise.
|
(ceil_test_data): Likewise.
|
||||||
|
|
|
@ -683,7 +683,7 @@ __ieee754_j0l (long double x)
|
||||||
if (! isfinite (x))
|
if (! isfinite (x))
|
||||||
{
|
{
|
||||||
if (x != x)
|
if (x != x)
|
||||||
return x;
|
return x + x;
|
||||||
else
|
else
|
||||||
return 0.0L;
|
return 0.0L;
|
||||||
}
|
}
|
||||||
|
@ -831,7 +831,7 @@ long double
|
||||||
if (! isfinite (x))
|
if (! isfinite (x))
|
||||||
{
|
{
|
||||||
if (x != x)
|
if (x != x)
|
||||||
return x;
|
return x + x;
|
||||||
else
|
else
|
||||||
return 0.0L;
|
return 0.0L;
|
||||||
}
|
}
|
||||||
|
|
|
@ -690,7 +690,7 @@ __ieee754_j1l (long double x)
|
||||||
if (! isfinite (x))
|
if (! isfinite (x))
|
||||||
{
|
{
|
||||||
if (x != x)
|
if (x != x)
|
||||||
return x;
|
return x + x;
|
||||||
else
|
else
|
||||||
return 0.0L;
|
return 0.0L;
|
||||||
}
|
}
|
||||||
|
@ -849,7 +849,7 @@ __ieee754_y1l (long double x)
|
||||||
if (! isfinite (x))
|
if (! isfinite (x))
|
||||||
{
|
{
|
||||||
if (x != x)
|
if (x != x)
|
||||||
return x;
|
return x + x;
|
||||||
else
|
else
|
||||||
return 0.0L;
|
return 0.0L;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue