https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92454

--- Comment #2 from Jan Hubicka <hubicka at ucw dot cz> ---
This is the usual problem of trying to process node with no summary
attached to it. The following fixes the ICE, but I am not sure if there
is a cleaner approach.

Martin, i suppose the issue here is with thunks in addition to stuff
optimized with -fno-ipa-cp?


Honza

Index: ipa-cp.c
===================================================================
--- ipa-cp.c    (revision 278023)
+++ ipa-cp.c    (working copy)
@@ -5008,19 +5089,19 @@ identify_dead_nodes (struct cgraph_node
 {
   struct cgraph_node *v;
   for (v = node; v; v = ((struct ipa_dfs_info *) v->aux)->next_cycle)
-    if (v->local
+    if (v->local && IPA_NODE_REF (v)
        && !v->call_for_symbol_thunks_and_aliases
             (has_undead_caller_from_outside_scc_p, NULL, true))
       IPA_NODE_REF (v)->node_dead = 1;

   for (v = node; v; v = ((struct ipa_dfs_info *) v->aux)->next_cycle)
-    if (!IPA_NODE_REF (v)->node_dead)
+    if (IPA_NODE_REF (v) && !IPA_NODE_REF (v)->node_dead)
       spread_undeadness (v);

   if (dump_file && (dump_flags & TDF_DETAILS))
     {
       for (v = node; v; v = ((struct ipa_dfs_info *) v->aux)->next_cycle)
-       if (IPA_NODE_REF (v)->node_dead)
+       if (IPA_NODE_REF (v) && IPA_NODE_REF (v)->node_dead)
          fprintf (dump_file, "  Marking node as dead: %s.\n", v->dump_name
());
     }
 }

Reply via email to