https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111331
Bug ID: 111331 Summary: Wrong code at -O1 on x86_64-linux-gnu since Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: shaohua.li at inf dot ethz.ch CC: rguenth at gcc dot gnu.org Target Milestone: --- gcc at -O1 produced the wrong code. Bisected to r9-3606-g1cab645d3e3 Compiler explorer: https://godbolt.org/z/5YEv44PTa $ cat a.c int printf(const char *, ...); int a; int b; int c(int d, int e, int f) { if (d < e) return e; if (d > f) return f; return d; } int main() { int g = -1; a = c(b + 30, 29, g + 29); printf("%d\n", a); } $ $ gcc -O0 a.c && ./a.out 28 $ gcc -O1 a.c && ./a.out 29 $