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 | |
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')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3184e7a..aed4492 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-05-29 Jan Hubicka <jh@suse.cz> + + * cgraphunit.c (cgraph_materialize_clone): Only remove calles, refs and body; + not the whole node for masters of materialized clones. + 2010-05-29 Mike Stump <mikestump@comcast.net> * config/rs6000/rs6000-c.c: Remove c-tree.h include. 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); } |