aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2005-03-30 14:07:51 -0800
committerRichard Henderson <rth@gcc.gnu.org>2005-03-30 14:07:51 -0800
commit12527dcee33276926ce75f6117544205982291e9 (patch)
tree2703a1a2856c88be6ea09ad01570de46dd943419 /gcc
parent7efa52a3e519324350c2d649264191c7b51344a6 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/cgraph.h2
-rw-r--r--gcc/cgraphunit.c4
-rw-r--r--gcc/varasm.c2
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;