Clang at -O1 and above produces the wrong code. Bisected to 8773c9be3d9868288f1f46957945d50ff58e4e91, which was committed by @mgudim Compiler explorer: https://godbolt.org/z/aTKK3Prqs ```console % cat reduced.c int printf(const char *, ...); int a, b = 7, c; int *d = &c; int e() { return 1 & b; } int main() { char f = -1; *d = a + f == e() + f + f; printf("%d\n", c); } % % clang -O0 reduced.c && ./a.out 1 % clang -O1 reduced.c && ./a.out 0 % ```