https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79025
--- Comment #1 from Peter Selinger <selinger at mathstat dot dal.ca> --- I would like to add that while the gcc option "-fdisable-tree-vrp1" appears to fix the first problem, it does not solve the "secondary bug": extern int printf (const char *__restrict __format, ...); int main() { int x; for (x = 0; x >= 0 && x < 0xffffffff; x += 0x40000000) { printf("x=%d\n", x); } return 0; } $ gcc -O2 test.c -o test -fdisable-tree-vrp1 cc1: note: disable pass tree-vrp1 for functions in the range of [0, 4294967295] $ ./test x=0 x=1073741824 x=0 x=1073741824 x=0 [...]