math: fix modfl.c bug

modfl(+-inf) was wrong on ld80 because the explicit msb
was not taken into account during inf vs nan check
This commit is contained in:
nsz 2012-03-28 23:51:09 +02:00
parent cf682072ce
commit 9f58d06007
1 changed files with 1 additions and 1 deletions

View File

@ -81,7 +81,7 @@ long double modfl(long double x, long double *iptr)
return x - ux.e;
} else if (e >= LDBL_MANT_DIG - 1) { /* x has no fraction part. */
*iptr = x;
if (e == LDBL_MAX_EXP && (ux.bits.manh|ux.bits.manl)) /* nan */
if (e == LDBL_MAX_EXP && ((ux.bits.manh&~LDBL_NBIT)|ux.bits.manl)) /* nan */
return x;
return zero[ux.bits.sign];
} else { /* Fraction part is in manl. */