> The following code prints different results when run with different > optimization levels (O0 vs O2). > > int main() { > int i = INT_MAX - 5; > int j = 0; > for (; i <= INT_MAX - 2; i += 3) { > if (i <= 1) { > j = 1; > } > } > printf("%d",j); > return 0; > } > > Commands used : > gcc -O0 -fno-strict-overflow bug.c -o bug # Output is 1 > gcc -O2 -fno-strict-overflow bug.c -o bug # Output is 0 Also see Signed Overflow, http://www.airs.com/blog/archives/120 . Jeff