1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

[BZ #15522] strtod ("nan(N)") returning a sNaN in some cases

This commit is contained in:
Thomas Schwinge
2013-05-23 18:00:10 +02:00
parent f1cc4c8654
commit 0007fc9bdd
10 changed files with 87 additions and 32 deletions

View File

@ -42,11 +42,10 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **,
# define SET_MANTISSA(flt, mant) \
do { union ieee754_double u; \
u.d = (flt); \
if ((mant & 0xfffffffffffffULL) == 0) \
mant = 0x8000000000000ULL; \
u.ieee.mantissa0 = ((mant) >> 32) & 0xfffff; \
u.ieee.mantissa1 = (mant) & 0xffffffff; \
(flt) = u.d; \
u.ieee_nan.mantissa0 = (mant) >> 32; \
u.ieee_nan.mantissa1 = (mant); \
if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \
(flt) = u.d; \
} while (0)
#endif
/* End of configuration part. */