https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87447
--- Comment #3 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- This is probably related to the == operator (and other ones), since gcc warns on the following codes: double foo (void) { double x = (1ULL << 63) + 1; return x; } and double foo (void) { return (1ULL << 63) + 1; }