https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93450
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- void bar (int); double foo (void) { double x = __builtin_huge_val (); bar (0); return x; } The ICE is because analyzer tries to simplify comparison of integer 0 with the real Inf constant. That is incorrect, one can only compare comparable types. Don't see how the 0 is in any way related to the floating point values in this testcase.