From f0c418dcec3aef252c625b7c99ca0345ab7843ca Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sat, 29 May 2010 10:17:36 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/cgraphunit.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3184e7a8bfb..aed449207fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-05-29 Jan Hubicka + + * 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 * config/rs6000/rs6000-c.c: Remove c-tree.h include. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index ab6bf06c01a..39711a3b1a7 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); } -- 2.30.2