https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118638
--- Comment #1 from Yunbo Ni <yunboni at smail dot nju.edu.cn> --- (In reply to Yunbo Ni from comment #0) > This code prints -1 at -O0/1/2/3 and 3 at -Os: > > ```c > int printf(const char *, ...); > int a; > int b(int f) { > int c = f ? 1 : 0, d = f ? 1 : 0, e = f ? 1 : 0; > return c + d + e; > } > int g() { > if (!((b(a + 3) + (a - 9 + a)) & 1)) > return -1; > return 0; > } > int main() { > int h = g(); > printf("%X\n", h); > } > ``` > > Compiler Explorer: https://godbolt.org/z/fa3qP15d3 > > It starts with x86-64 gcc 14.1. Line 14 should be printf("%d\n", h); otherwise it prints FFFFFFFF at -O0/1/2/3.