https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87390
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I believe this is correct for C99 (see the discussions in bug 82071): my reading of C99 is that conversions of integers to floating point, both explicit and implicit, produce results that can be represented in the semantic type. However, in C11 implicit conversions of integers to floating point can have excess precision, and as GCC produces the same results with -std=c11 there is still a bug there (a case I missed when fixing bug 82071: excess precision needs adding for comparisons of floating-point and integer types in this case).