diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2015-02-04 08:26:49 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2015-02-04 08:26:49 +0000 |
commit | 283b44f96adb3e369cb8ed166d6c45703738927b (patch) | |
tree | e962261cdecbe99a1aa48758a456be60af9d68f3 /gcc/varasm.c | |
parent | cc9ef6a6419a8c343a5f0d233405411e8c5ca4cc (diff) | |
download | gcc-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.c | 9 |
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); |