https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110282
--- Comment #17 from mcccs at gmx dot com --- Actually my test file in comment 16 is invalid. This means the failure happens before the optimized pass and it needs the DCE-disabled GCC I described in comment 15 to reproduce the faulty optimized dump (which is then propagated in later passes in any GCC). The problem is that the parameter pointer is not set to the argument so dereferencing it causes a segfault. Dumping all the passes, this problem is first present in the output of the pass "x.c.100t.fixup_cfg3.c" as compiled with the modified GCC with -O3 -fno-dce -fno-ipa-cp -fno-tree-dce -fno-dse -fno-tree-dse The previous dump, "x.058t.local-fnsummary2", is sane and looks like this: int * __GIMPLE (ssa,guessed_local(1073741824)) n (int * o) { ... _3 = __MEM <int> (o_17(D)); ... main () { __BB(2): n (&a); whereas x.c.100t.fixup_cfg3.c looks like this: int __GIMPLE (ssa) main () { int * o; ...(no assignment to o)... _6 = __MEM <int> (o_5(D)); __attribute__((noclone)) to the function fixes the segmentation fault, __attribute__((noinline)) doesn't.