https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110476
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- I think the justification for GCC's behaviour is that "representable value" is to be interpreted in the context of FLT_EVAL_METHOD, so it means representable as double (for FLT_EVAL_METHOD==1) or long double (for 2). "its type" is only mentioned in the first sentence, which doesn't apply to IEEE types because they support infinities and so all values are in the range of representable values. The second sentence doesn't mention "its type".