https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108742
--- Comment #8 from Michael Matz <matz at gcc dot gnu.org> --- (In reply to Michael Matz from comment #7) > So, my interpretation is that unsuffixed "4.2" has to be the double constant > 4.2 (in IEEE double aka 0x1.0cccccccccccdp+2), which is then, because of > FLT_EVAL_METHOD, evaluated to "range and precision of long double" leading > to 0x8.6666666666668p-1, not to 0x8.666666666666666p-1 . That is, I think that the real_from_string3 call in interpret_float should use TYPE_MODE(type) plus conversion to const_type, not const_type plus conversion to type (for over/underflow warnings).