aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-02-19 08:33:45 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2014-02-19 07:33:45 +0000
commit2dbe8b7088abd37757aaa91d3cdacd3630b4438f (patch)
tree593566aed076aafa66fb0f340d68322e073c0ab2 /gcc/cgraph.c
parentcc28fc7fe9d488a5d5afb94038eea11f0c9a7d44 (diff)
downloadgcc-2dbe8b7088abd37757aaa91d3cdacd3630b4438f.zip
gcc-2dbe8b7088abd37757aaa91d3cdacd3630b4438f.tar.gz
gcc-2dbe8b7088abd37757aaa91d3cdacd3630b4438f.tar.bz2
cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove inline clones when edge disappears.
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove inline clones when edge disappears. From-SVN: r207875
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r--gcc/cgraph.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index ae1f43c..a15b6bc 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -1529,7 +1529,10 @@ cgraph_update_edges_for_call_stmt_node (struct cgraph_node *node,
attached to edge is invalid. */
count = e->count;
frequency = e->frequency;
- cgraph_remove_edge (e);
+ if (e->indirect_unknown_callee || e->inline_failed)
+ cgraph_remove_edge (e);
+ else
+ cgraph_remove_node_and_inline_clones (e->callee, NULL);
}
else if (new_call)
{