diff options
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 5f79ece..921ee2e 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -5525,12 +5525,21 @@ compute_visible_aliases (void) { struct cgraph_node *fnode = NULL; struct varpool_node *vnode = NULL; + tree asmname = DECL_ASSEMBLER_NAME (p->decl); + const char *str = IDENTIFIER_POINTER (asmname); + + if (str[0] == '*') + { + str ++; + asmname = get_identifier (str); + } + fnode = cgraph_node_for_asm (p->target); vnode = (fnode == NULL) ? varpool_node_for_asm (p->target) : NULL; if ((fnode || vnode || pointer_set_contains (visible, p->target)) - && !pointer_set_insert (visible, DECL_ASSEMBLER_NAME (p->decl))) + && !pointer_set_insert (visible, asmname)) changed = true; } } |