aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2003-09-07 00:47:19 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2003-09-06 22:47:19 +0000
commitba245151fca2c6a5af41378f56952250a1d7672e (patch)
treed978aa32ef0b5a79b89c076b7716cd14ffd50a86 /gcc/cgraph.c
parent7e668417e948ec56c7ecacdde8651eab9effb4f2 (diff)
downloadgcc-ba245151fca2c6a5af41378f56952250a1d7672e.zip
gcc-ba245151fca2c6a5af41378f56952250a1d7672e.tar.gz
gcc-ba245151fca2c6a5af41378f56952250a1d7672e.tar.bz2
cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized functions.
* cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized functions. (cgraph_varpool_finalize_decl): Notice global symbol when needed. From-SVN: r71149
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r--gcc/cgraph.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 8b4c0cc..4eaa60e 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -239,13 +239,13 @@ cgraph_remove_node (struct cgraph_node *node)
void
cgraph_mark_reachable_node (struct cgraph_node *node)
{
- if (!node->reachable && DECL_SAVED_TREE (node->decl))
+ if (!node->reachable && node->local.finalized)
{
+ notice_global_symbol (node->decl);
node->reachable = 1;
node->next_needed = cgraph_nodes_queue;
cgraph_nodes_queue = node;
- notice_global_symbol (node->decl);
/* At the moment frontend automatically emits all nested functions. */
if (node->nested)
@@ -486,6 +486,7 @@ cgraph_varpool_finalize_decl (tree decl)
{
node->next_needed = cgraph_varpool_nodes_queue;
cgraph_varpool_nodes_queue = node;
+ notice_global_symbol (decl);
}
node->finalized = true;