X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcgraphunit.c;h=b91e218f3a4d636affca436cc1ee7da1ce139a1c;hb=09e23cc32975318caaa78c1c9eebb6d7d68dc329;hp=7618dd0074346a60a915ac3fcab9e773e629afe4;hpb=0b49f8f8e6a6354ca047371ed355830edb5b556d;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 7618dd00743..b91e218f3a4 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -812,7 +812,9 @@ verify_cgraph_node (struct cgraph_node *node) error_found = true; } } - else if (decl) + else if (!node->global.inlined_to + && !e->callee->global.inlined_to + && !clone_of_p (cgraph_node (decl), e->callee)) { error ("an indirect edge with unknown callee " "corresponding to a call_stmt with " @@ -2342,7 +2344,6 @@ cgraph_redirect_edge_call_stmt_to_callee (struct cgraph_edge *e) gsi = gsi_for_stmt (e->call_stmt); gsi_replace (&gsi, new_stmt, true); - update_stmt (new_stmt); /* Update EH information too, just in case. */ maybe_clean_or_replace_eh_stmt (e->call_stmt, new_stmt); @@ -2425,9 +2426,8 @@ cgraph_materialize_all_clones (void) } } cgraph_materialize_clone (node); + stabilized = false; } - else - stabilized = false; } } } @@ -2446,7 +2446,6 @@ cgraph_materialize_all_clones (void) push_cfun (DECL_STRUCT_FUNCTION (node->decl)); for (e = node->callees; e; e = e->next_callee) cgraph_redirect_edge_call_stmt_to_callee (e); - gcc_assert (!need_ssa_update_p (cfun)); pop_cfun (); current_function_decl = NULL; #ifdef ENABLE_CHECKING