diff options
Diffstat (limited to 'gcc/tree-optimize.c')
-rw-r--r-- | gcc/tree-optimize.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c index fdf8ca1..3f4471a 100644 --- a/gcc/tree-optimize.c +++ b/gcc/tree-optimize.c @@ -393,15 +393,14 @@ tree_rest_of_compilation (tree fndecl) timevar_pop (TV_INTEGRATION); } } - /* We are not going to maintain the cgraph edges up to date. - Kill it so it won't confuse us. */ - while (node->callees) + /* In non-unit-at-a-time we must mark all referenced functions as needed. + */ + if (!flag_unit_at_a_time) { - /* In non-unit-at-a-time we must mark all referenced functions as needed. - */ - if (node->callees->callee->analyzed && !flag_unit_at_a_time) - cgraph_mark_needed_node (node->callees->callee); - cgraph_remove_edge (node->callees); + struct cgraph_edge *e; + for (e = node->callees; e; e = e->next_callee) + if (e->callee->analyzed) + cgraph_mark_needed_node (e->callee); } /* We are not going to maintain the cgraph edges up to date. |