https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110476
--- Comment #2 from Peter Dimov <pdimov at gmail dot com> --- Discussion of FLT_EVAL_METHOD notwithstanding, I think that this behavior is not allowed by https://eel.is/c++draft/lex.fcon#3. "If the scaled value is not in the range of representable values for its type, the program is ill-formed. Otherwise, the value of a floating-point-literal is the scaled value if representable, else the larger or smaller representable value nearest the scaled value, chosen in an implementation-defined manner." I don't see any license here for the value of 3.14f to be 3.14L.