aboutsummaryrefslogtreecommitdiff
path: root/gcc/symtab.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-06-08 18:57:19 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2014-06-08 16:57:19 +0000
commit80bc9b6eccd49c5b8031be53e65fe65ffa718906 (patch)
treea5aa816d9c6582850e447a29afa72dd0942eb351 /gcc/symtab.c
parent684a3aa7ab4ab91bbd691fd471cbd24184f3dbd3 (diff)
downloadgcc-80bc9b6eccd49c5b8031be53e65fe65ffa718906.zip
gcc-80bc9b6eccd49c5b8031be53e65fe65ffa718906.tar.gz
gcc-80bc9b6eccd49c5b8031be53e65fe65ffa718906.tar.bz2
symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag; remove static initializer.
* symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag; remove static initializer. From-SVN: r211358
Diffstat (limited to 'gcc/symtab.c')
-rw-r--r--gcc/symtab.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/symtab.c b/gcc/symtab.c
index 79fdbc2..ab6c9d7 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -1154,7 +1154,9 @@ symtab_nonoverwritable_alias (symtab_node *node)
TREE_PUBLIC (new_decl) = 0;
DECL_COMDAT (new_decl) = 0;
DECL_WEAK (new_decl) = 0;
- DECL_VIRTUAL_P (new_decl) = 0;
+
+ /* Since the aliases can be added to vtables, keep DECL_VIRTUAL flag. */
+ DECL_VIRTUAL_P (new_decl) = DECL_VIRTUAL_P (node->decl);
if (TREE_CODE (new_decl) == FUNCTION_DECL)
{
DECL_STATIC_CONSTRUCTOR (new_decl) = 0;
@@ -1165,6 +1167,7 @@ symtab_nonoverwritable_alias (symtab_node *node)
else
{
TREE_READONLY (new_decl) = TREE_READONLY (node->decl);
+ DECL_INITIAL (new_decl) = error_mark_node;
new_node = varpool_create_variable_alias (new_decl, node->decl);
}
symtab_resolve_alias (new_node, node);