https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110251
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Looks like it is uninitialized variable related. Here is one which shows that: ``` int a, b; char c; int d(int e) { int t = 0; if (e >= 'a') return e; return t; } int f(unsigned short e) { int t2; for (; e; a++) e &= e - 1; return t2; } void g() { for (; c < 1;) ; for (; f(c - 1); b = d(c)) ; } ``` If you initialize t2 to either 1 or 0, GCC will not hang.