@@ -, +, @@ --- gcc/ipa-cp.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) --- a/gcc/ipa-cp.c +++ a/gcc/ipa-cp.c @@ -5666,9 +5666,15 @@ has_undead_caller_from_outside_scc_p (struct cgraph_node *node, && cs->caller->call_for_symbol_thunks_and_aliases (has_undead_caller_from_outside_scc_p, NULL, true)) return true; - else if (!ipa_edge_within_scc (cs) - && !IPA_NODE_REF (cs->caller)->node_dead) - return true; + else if (!ipa_edge_within_scc (cs)) + { + /* Unoptimized callers don't have IPA information. + Conservatively assume callers are undead. */ + if (!IPA_NODE_REF (cs->caller)) + return true; + if (!IPA_NODE_REF (cs->caller)->node_dead) + return true; + } return false; } --