summaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2004-05-05 20:55:02 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2004-05-05 20:55:02 +0000
commitb33eaee0e8124e0df29fd209ea80e3ea7c3f54eb (patch)
tree8894b636feef5e7cd06e3aefa02c8ece1b2daa07 /gcc/cgraphunit.c
parent762e0956af06bb38c37f0a714f230b8f9ba10636 (diff)
downloadgcc-b33eaee0e8124e0df29fd209ea80e3ea7c3f54eb.tar.gz
PR opt/14980
* cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with inline clones. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81540 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 156c924bca1..e9402dbfb6e 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -889,7 +889,8 @@ cgraph_remove_unreachable_nodes (void)
abort ();
#endif
for (node = cgraph_nodes; node; node = node->next)
- if (node->needed && (!DECL_EXTERNAL (node->decl) || !node->analyzed))
+ if (node->needed && !node->global.inlined_to
+ && (!DECL_EXTERNAL (node->decl) || !node->analyzed))
{
node->aux = first;
first = node;
@@ -932,6 +933,7 @@ cgraph_remove_unreachable_nodes (void)
int local_insns;
tree decl = node->decl;
+ node->global.inlined_to = NULL;
if (DECL_STRUCT_FUNCTION (decl))
local_insns = node->local.self_insns;
else