diff options
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); |