https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79117
--- Comment #2 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- If you use -fexcess-precision=standard, the classification built-in functions should convert values with excess range and precision to their semantic types as required by ISO C (see c-typeck.c:convert_arguments). Without -fexcess-precision=standard, the front end can't do that because the excess range and precision is all hidden by the back end.