https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120993

--- Comment #6 from Joseph S. Myers <jsm28 at gcc dot gnu.org> ---
e_max is 1023, not 1024, because that's the largest exponent for which all
choices of the 106 significand bits are valid. But LDBL_MAX_EXP is 1024, not
1023, because 2**1023 is representable. Note the "if that representable finite
floating-point number is normalized" in the specification for LDBL_MAX_EXP;
2**1023 isn't normalized, because not all choices of the subsequent 105
significand bits are valid. In particular, 2**1024 - 2**918 cannot be
represented in this format (recall that the high double must equal the sum of
the two parts rounded to nearest). I don't see any bug here at all.

Reply via email to