From: nsz Date: Wed, 28 Mar 2012 21:51:09 +0000 (+0200) Subject: math: fix modfl.c bug X-Git-Tag: v0.8.8~63 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=9f58d06007818c43b9504e959ef81ab5f113b374;p=oweals%2Fmusl.git 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 --- diff --git a/src/math/modfl.c b/src/math/modfl.c index 6520a1c2..f6d62444 100644 --- a/src/math/modfl.c +++ b/src/math/modfl.c @@ -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. */