https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105990
--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> --- Another case static short a; static int b; void foo(void); void bar9_(void); int main() { char c; b = a = 23; for (; b <= 1;) a = 1; bar9_(); c = a >= 18 || 2 > 2 >> a ? 1 : 1 << a; if (c == 0) foo(); } foo() also can be eliminated.