@@ -115,14 +115,6 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size,
&& res_ptr[N - 1] == 0)
/* Pseudo zero. */
*expt = 0;
- else
- /* Unlike other floating point formats, the most significant bit
- is explicit and expected to be set for normal numbers. Set it
- in case it is cleared in the input. Otherwise, callers will
- not be able to produce the expected multi-precision integer
- layout by shifting. */
- res_ptr[N - 1] |= (mp_limb_t) 1 << (LDBL_MANT_DIG - 1
- - ((N - 1) * BITS_PER_MP_LIMB));
return N;
}
@@ -42,10 +42,7 @@ do_test (void)
char buf[30];
int ret = snprintf (buf, sizeof (buf), "%Lg", value);
TEST_COMPARE (ret, strlen (buf));
- if (strcmp (buf, "nan") != 0)
- /* If snprintf does not recognize the non-normal number as a NaN,
- it has added the missing explicit MSB. */
- TEST_COMPARE_STRING (buf, "3.02201e-4624");
+ TEST_COMPARE_STRING (buf, "nan");
return 0;
}