diff options
author | Jason Merrill <jason@redhat.com> | 2010-03-03 14:01:58 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-03-03 14:01:58 -0500 |
commit | 2c71ac786646a4ed4d221a574b2797c66549e9d6 (patch) | |
tree | b5f41f7d05cddfdd91243f5dd7ab8fd79204aada /gcc/cgraph.h | |
parent | d6dcdbd5f673e4005a11419d83c0b99af6a512bb (diff) | |
download | gcc-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.h | 7 |
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. */ |