https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86214
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Short testcase that shows what's going on on the #c7 testcase: typedef __SIZE_TYPE__ size_t; struct A { A (); ~A (); int a; void qux (const char *); }; int bar (char *); static inline __attribute__((always_inline)) A foo () { char b[8192]; int x = bar (b); A s; if (x > 0 && (size_t) x < sizeof b) s.qux (b); return s; } void baz () { A a; foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); }