summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-19 07:33:45 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-19 07:33:45 +0000
commit776e3d3512e7fa0990041f5bc26699cd5ca159f9 (patch)
tree593566aed076aafa66fb0f340d68322e073c0ab2 /gcc
parent977b18535398df492e5c3687181ebd4c551eb477 (diff)
downloadgcc-776e3d3512e7fa0990041f5bc26699cd5ca159f9.tar.gz
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
inline clones when edge disappears. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207875 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cgraph.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e3c8546c79..315691a06b8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-18 Jan Hubicka <hubicka@ucw.cz>
+
+ * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
+ inline clones when edge disappears.
+
2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/60203
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index ae1f43c4359..a15b6bc7cfc 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)
{