diff options
author | Jan Hubicka <jh@suse.cz> | 2010-05-29 10:17:36 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2010-05-29 08:17:36 +0000 |
commit | f0c418dcec3aef252c625b7c99ca0345ab7843ca (patch) | |
tree | 55ba7297742bdce55874fc05c4230052c31fe809 /gcc/cgraphunit.c | |
parent | 5c5543af85740540ae47853858756aa64c7871d3 (diff) | |
download | gcc-f0c418dcec3aef252c625b7c99ca0345ab7843ca.zip gcc-f0c418dcec3aef252c625b7c99ca0345ab7843ca.tar.gz gcc-f0c418dcec3aef252c625b7c99ca0345ab7843ca.tar.bz2 |
cgraphunit.c (cgraph_materialize_clone): Only remove calles, refs and body...
* cgraphunit.c (cgraph_materialize_clone): Only remove calles, refs and body;
not the whole node for masters of materialized clones.
From-SVN: r160019
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r-- | gcc/cgraphunit.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index ab6bf06..39711a3 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -2311,7 +2311,11 @@ cgraph_materialize_clone (struct cgraph_node *node) node->next_sibling_clone = NULL; node->prev_sibling_clone = NULL; if (!node->clone_of->analyzed && !node->clone_of->clones) - cgraph_remove_node (node->clone_of); + { + cgraph_release_function_body (node->clone_of); + cgraph_node_remove_callees (node->clone_of); + ipa_remove_all_references (&node->clone_of->ref_list); + } node->clone_of = NULL; bitmap_obstack_release (NULL); } |