aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2011-06-10 00:31:19 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2011-06-10 00:31:19 +0000
commit443089c1691fc1d5e3b004bc008a4b69589aad97 (patch)
tree76467d044aa99677800c5aeb965fa174159b9549 /gcc/cgraphunit.c
parent72df47e9657414808d080d2e73dde6c005e53fd9 (diff)
* cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
do not recompute reachable flag. (cgraph_finalize_function, cgraph_analyze_functions): Set redefined_extern_inline here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174877 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 614b7858a3f..1e3aa0ddf19 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -306,24 +306,9 @@ cgraph_reset_node (struct cgraph_node *node)
memset (&node->global, 0, sizeof (node->global));
memset (&node->rtl, 0, sizeof (node->rtl));
node->analyzed = false;
- node->local.redefined_extern_inline = true;
node->local.finalized = false;
cgraph_node_remove_callees (node);
-
- /* We may need to re-queue the node for assembling in case
- we already proceeded it and ignored as not needed or got
- a re-declaration in IMA mode. */
- if (node->reachable)
- {
- struct cgraph_node *n;
-
- for (n = cgraph_nodes_queue; n; n = n->next_needed)
- if (n == node)
- break;
- if (!n)
- node->reachable = 0;
- }
}
static void
@@ -351,7 +336,10 @@ cgraph_finalize_function (tree decl, bool nested)
struct cgraph_node *node = cgraph_get_create_node (decl);
if (node->local.finalized)
- cgraph_reset_node (node);
+ {
+ cgraph_reset_node (node);
+ node->local.redefined_extern_inline = true;
+ }
notice_global_symbol (decl);
node->local.finalized = true;
@@ -994,6 +982,7 @@ cgraph_analyze_functions (void)
&& !node->thunk.thunk_p)
{
cgraph_reset_node (node);
+ node->local.redefined_extern_inline = true;
continue;
}