https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105278
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So clang emits one or the other warning for the code but not both. You can defect the warning in clang by doing: ``` extern void g( int); void f(float a) { double b = a; if (b == 0.1234) g( 1); } ``` LLVM actually opimizes away the comparison while GCC does not.