aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2015-02-04 08:26:49 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2015-02-04 08:26:49 +0000
commit283b44f96adb3e369cb8ed166d6c45703738927b (patch)
treee962261cdecbe99a1aa48758a456be60af9d68f3 /gcc/varasm.c
parentcc9ef6a6419a8c343a5f0d233405411e8c5ca4cc (diff)
downloadgcc-283b44f96adb3e369cb8ed166d6c45703738927b.zip
gcc-283b44f96adb3e369cb8ed166d6c45703738927b.tar.gz
gcc-283b44f96adb3e369cb8ed166d6c45703738927b.tar.bz2
varasm.c (do_assemble_alias): Follow transparent alias chain for target.
gcc/ * varasm.c (do_assemble_alias): Follow transparent alias chain for target. (default_assemble_visibility): Follow transparent alias chain for decl name. gcc/testsuite/ * gcc.target/i386/chkp-hidden-def.c: New. From-SVN: r220391
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 2069432..eb65b1f 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -5601,6 +5601,7 @@ do_assemble_alias (tree decl, tree target)
id = DECL_ASSEMBLER_NAME (decl);
ultimate_transparent_alias_target (&id);
+ ultimate_transparent_alias_target (&target);
/* We must force creation of DECL_RTL for debug info generation, even though
we don't use it here. */
@@ -5612,8 +5613,6 @@ do_assemble_alias (tree decl, tree target)
if (lookup_attribute ("weakref", DECL_ATTRIBUTES (decl)))
{
- ultimate_transparent_alias_target (&target);
-
if (!TREE_SYMBOL_REFERENCED (target))
weakref_targets = tree_cons (decl, target, weakref_targets);
@@ -5944,8 +5943,12 @@ default_assemble_visibility (tree decl ATTRIBUTE_UNUSED,
};
const char *name, *type;
+ tree id;
+
+ id = DECL_ASSEMBLER_NAME (decl);
+ ultimate_transparent_alias_target (&id);
+ name = IDENTIFIER_POINTER (id);
- name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
type = visibility_types[vis];
fprintf (asm_out_file, "\t.%s\t", type);