Hi,
this patch fixes ICE when edge redirection happens just before summary 
generation.
At that time we still don't want edges to be redirected when underlying 
statements
are not.

Bootstrapped/regtested x86_64-linux, comitted.

        * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
        summary generation.
Index: ipa.c
===================================================================
--- ipa.c       (revision 202370)
+++ ipa.c       (working copy)
@@ -220,9 +220,9 @@ walk_polymorphic_call_targets (pointer_s
                     edge->caller->symbol.order,
                     cgraph_node_name (target), target->symbol.order);
          edge = cgraph_make_edge_direct (edge, target);
-         if (cgraph_state != CGRAPH_STATE_IPA_SSA)
+         if (!inline_summary_vec && edge->call_stmt)
            cgraph_redirect_edge_call_stmt_to_callee (edge);
-         else if (inline_summary_vec)
+         else
            inline_update_overall_summary (node);
        }
     }

Reply via email to