summaryrefslogtreecommitdiff
path: root/gcc/varpool.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2019-11-30 22:03:25 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-11-30 21:03:25 +0000
commitd7ddfbcb7fa6e700639c9b916bf8a5ed15600950 (patch)
tree3e8ad36922e2df05cdc896aec48daa30135163d6 /gcc/varpool.c
parent65ef05d0b7fb429c5760189e638c441dc3da33f4 (diff)
cgraph.h (symtab_node): Add symver flag.
2019-11-30 Jan Hubicka <hubicka@ucw.cz> * cgraph.h (symtab_node): Add symver flag. * cgraphunit.c (process_symver_attribute): New. (process_common_attributes): Use process_symver_attribute. * lto-cgraph.c (lto_output_node): Stream symver. (lto_output_varpool_node): Stream symver. (input_overwrite_node): Stream symver. (input_varpool_node): Stream symver. * output.h (do_assemble_symver): Decalre. * symtab.c (symtab_node::dump_base): Dump symver. (symtab_node::verify_base): Verify symver. (symtab_node::resolve_alias): Handle symver. * varasm.c (do_assemble_symver): New function. * varpool.c (varpool_node::assemble_aliases): Use it. * doc/extend.texi: (symver attribute): Document. * config/elfos.h (ASM_OUTPUT_SYMVER_DIRECTIVE): New. c-family/ChangeLog: 2019-11-30 Jan Hubicka <hubicka@ucw.cz> * c-attribs.c (handle_symver_attribute): New function (c_common_attributes): Add symver. From-SVN: r278878
Diffstat (limited to 'gcc/varpool.c')
-rw-r--r--gcc/varpool.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/varpool.c b/gcc/varpool.c
index ff49ad9f517..1a30ae49d54 100644
--- a/gcc/varpool.c
+++ b/gcc/varpool.c
@@ -540,7 +540,10 @@ varpool_node::assemble_aliases (void)
FOR_EACH_ALIAS (this, ref)
{
varpool_node *alias = dyn_cast <varpool_node *> (ref->referring);
- if (!alias->transparent_alias)
+ if (alias->symver)
+ do_assemble_symver (alias->decl,
+ DECL_ASSEMBLER_NAME (decl));
+ else if (!alias->transparent_alias)
do_assemble_alias (alias->decl,
DECL_ASSEMBLER_NAME (decl));
alias->assemble_aliases ();