aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-05-29 10:17:36 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-05-29 08:17:36 +0000
commitf0c418dcec3aef252c625b7c99ca0345ab7843ca (patch)
tree55ba7297742bdce55874fc05c4230052c31fe809 /gcc
parent5c5543af85740540ae47853858756aa64c7871d3 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/cgraphunit.c6
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);
}