aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-03-03 14:01:58 -0500
committerJason Merrill <jason@gcc.gnu.org>2010-03-03 14:01:58 -0500
commit2c71ac786646a4ed4d221a574b2797c66549e9d6 (patch)
treeb5f41f7d05cddfdd91243f5dd7ab8fd79204aada /gcc/cgraph.h
parentd6dcdbd5f673e4005a11419d83c0b99af6a512bb (diff)
downloadgcc-2c71ac786646a4ed4d221a574b2797c66549e9d6.zip
gcc-2c71ac786646a4ed4d221a574b2797c66549e9d6.tar.gz
gcc-2c71ac786646a4ed4d221a574b2797c66549e9d6.tar.bz2
re PR c++/12909 (ambiguity in mangling vector types)
PR c++/12909 * cgraph.h (varpool_node): Add extra_name field. * varpool.c (varpool_extra_name_alias): New. (varpool_assemble_decl): Emit extra name aliases. (varpool_mark_needed_node): Look past an extra name alias. cp/ * mangle.c (mangle_decl): Handle VAR_DECL, too. From-SVN: r157203
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r--gcc/cgraph.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index 802b280..f8d52eb 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -361,6 +361,9 @@ struct GTY((chain_next ("%h.next"))) varpool_node {
struct varpool_node *next;
/* Pointer to the next function in varpool_nodes_queue. */
struct varpool_node *next_needed;
+ /* For normal nodes a pointer to the first extra name alias. For alias
+ nodes a pointer to the normal node. */
+ struct varpool_node *extra_name;
/* Ordering of all cgraph nodes. */
int order;
@@ -379,7 +382,8 @@ struct GTY((chain_next ("%h.next"))) varpool_node {
unsigned output : 1;
/* Set when function is visible by other units. */
unsigned externally_visible : 1;
- /* Set for aliases once they got through assemble_alias. */
+ /* Set for aliases once they got through assemble_alias. Also set for
+ extra name aliases in varpool_extra_name_alias. */
unsigned alias : 1;
};
@@ -574,6 +578,7 @@ bool varpool_assemble_decl (struct varpool_node *node);
bool varpool_analyze_pending_decls (void);
void varpool_remove_unreferenced_decls (void);
void varpool_empty_needed_queue (void);
+bool varpool_extra_name_alias (tree, tree);
const char * varpool_node_name (struct varpool_node *node);
/* Walk all reachable static variables. */