https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112344
--- Comment #3 from Junwei Zeng <jwzeng at nuaa dot edu.cn> --- (In reply to Andrew Pinski from comment #2) > Corrected testcase: > ``` > int printf(const char *, ...); > void a() { > long b = 2036854775807; > char c = 3; > short d; > int e = -2147483648, f = 0; > for (; f < 7; f++) > while (e < 20) { > e += 2; > d = c -= b; > } > printf("%d\n", d); > } > int main() { a(); } > ``` Sorry, I copied the wrong test case, the correct test case is the one in Compiler explorer, which is the one you mentioned. Compiler explorer: https://godbolt.org/z/8hq64asT5