https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102446
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- int a = 1, c, e, f, *j, k, o, *r = &f, s; char b, l; short d, *g; unsigned h; static void m(void); static inline void n(int); void p(int *q) { while (1) { if (*q) break; if (*g) o = c; while (l) ; } } void t() { for (; s < 8; s++) m(); } __attribute__((noinline)) void m() { int aa = 0, i = 0; for (; i < 3; i++) if (k < 0) aa |= *j; if (d) c = (h + *g + 2) & c; n(aa); } static inline __attribute__((always_inline)) void n(int ac) { char *ad = &b, u = ac, *v = &b; int ae = *ad = a; u && (*v = e > 0); *r = c; p(&ae); } int main() { t(); return 0; } ICEs already in r105000.