https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103227
--- Comment #6 from Jan Hubicka <hubicka at gcc dot gnu.org> --- struct a{int a,b;}; int bar (struct a *a) { if (!a->a) __builtin_abort (); } static __attribute__ ((noinline)) int foo (struct a a) { struct a b = a; bar (&b); return b.a+b.b; } int test() { struct a a={1,2}; return foo (a); } Is an example where we also miss transformation with -fno-early-inlining -O2