diff options
author | Richard Henderson <rth@redhat.com> | 2005-03-30 14:07:51 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-03-30 14:07:51 -0800 |
commit | 12527dcee33276926ce75f6117544205982291e9 (patch) | |
tree | 2703a1a2856c88be6ea09ad01570de46dd943419 /gcc | |
parent | 7efa52a3e519324350c2d649264191c7b51344a6 (diff) | |
download | gcc-12527dcee33276926ce75f6117544205982291e9.zip gcc-12527dcee33276926ce75f6117544205982291e9.tar.gz gcc-12527dcee33276926ce75f6117544205982291e9.tar.bz2 |
cgraph.h (struct cgraph_node): Add alias.
* cgraph.h (struct cgraph_node): Add alias.
* varasm.c (assemble_alias): Set it.
* cgraphunit.c (cgraph_assemble_pending_functions): Check it and
avoid calling cgraph_expand_function.
From-SVN: r97284
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cgraph.h | 2 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 4 | ||||
-rw-r--r-- | gcc/varasm.c | 2 |
4 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2adae16..be4f8c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-03-30 Richard Henderson <rth@redhat.com> + + * cgraph.h (struct cgraph_node): Add alias. + * varasm.c (assemble_alias): Set it. + * cgraphunit.c (cgraph_assemble_pending_functions): Check it and + avoid calling cgraph_expand_function. + 2005-03-30 Tom Tromey <tromey@redhat.com> * tree.def (FILE_TYPE): Removed. diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 46f9f0a..b9a8d6e 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -118,6 +118,8 @@ struct cgraph_node GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) bool analyzed; /* Set when function is scheduled to be assembled. */ bool output; + /* Set for aliases once they got through assemble_alias. */ + bool alias; }; struct cgraph_edge GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller"))) diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 6e864d5..9fef33e 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -300,7 +300,9 @@ cgraph_assemble_pending_functions (void) cgraph_nodes_queue = cgraph_nodes_queue->next_needed; n->next_needed = NULL; - if (!n->global.inlined_to && !DECL_EXTERNAL (n->decl)) + if (!n->global.inlined_to + && !n->alias + && !DECL_EXTERNAL (n->decl)) { cgraph_expand_function (n); output = true; diff --git a/gcc/varasm.c b/gcc/varasm.c index c51f6c0..cf323f4 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -4516,7 +4516,7 @@ assemble_alias (tree decl, tree target) /* Allow aliases to aliases. */ if (TREE_CODE (decl) == FUNCTION_DECL) - cgraph_node (decl); + cgraph_node (decl)->alias = true; else cgraph_varpool_node (decl)->alias = true; |