https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86214
--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Ah, the #c13 testcase shows the issue, but in the early inliner, not in IPA inliner like is triggered on the #c7 testcase. This modified testcase triggers it in the IPA inliner: typedef __SIZE_TYPE__ size_t; struct A { A (); ~A (); int a; void qux (const char *); }; int bar (char *); static 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; char c[1024]; bar (c); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); foo (); }