https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113756
Bug ID: 113756 Summary: Wrong code at -O2 on x86_64-linux-gnu since r14-2780-g39f117d6c87 Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: shaohua.li at inf dot ethz.ch CC: aldyh at redhat dot com Target Milestone: --- gcc at -O2 produced the wrong code. Bisected to r14-2780-g39f117d6c87 Compiler explorer: https://godbolt.org/z/qWd4196h6 % cat reduced.c int printf(const char *, ...); int d, e, i, k, l = -8; char h, j; int m(int n, int o, int p3) { int a = o - p3, b = n - p3, c = a + b, f = -b, g = c < 0 ? -c : c; return a <= f && a <= g ? o : p3; } void q(int *n, unsigned short o) { unsigned p = 8896; for (; e >= 0; e--) p = 5377; for (; h <= 0; h++) for (; j <= 0; j++) { *n = 1611581749; i = m(34, p - 5294, *n - 1611581687); k = i + p + 65535 + o + *n - 1611718251; printf("%d\n", k); } } int main() { q(&l, l); } % % gcc -O0 reduced.c &&./a.out 0 % gcc -O2 reduced.c &&./a.out 21 %