https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96291
--- Comment #4 from Sergei Trofimovich <slyfox at inbox dot ru> --- Peeking at the crash: """ Program received signal SIGSEGV, Segmentation fault. 0x0000000001ca0fed in has_undead_caller_from_outside_scc_p (node=0x7ffff7670438, data=0x0) at ../../gcc/gcc/ipa-cp.c:5670 5670 && !IPA_NODE_REF (cs->caller)->node_dead) (gdb) list 5665 if (cs->caller->thunk.thunk_p 5666 && cs->caller->call_for_symbol_thunks_and_aliases 5667 (has_undead_caller_from_outside_scc_p, NULL, true)) 5668 return true; 5669 else if (!ipa_edge_within_scc (cs) 5670 && !IPA_NODE_REF (cs->caller)->node_dead) 5671 return true; 5672 return false; 5673 } 5674 (gdb) print IPA_NODE_REF(cs->caller) $1 = (ipa_node_params *) 0x0 """ Is it an expected invariant? Looks like most of code does not expect NULL there: $ git grep IPA_NODE_REF | fgrep NULL gcc/ipa-prop.c: && IPA_NODE_REF (node) != NULL) gcc/ipa-prop.c: && IPA_NODE_REF (node) != NULL)