aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-emutls.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-emutls.c')
-rw-r--r--gcc/tree-emutls.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c
index da03b2a..68b2aae 100644
--- a/gcc/tree-emutls.c
+++ b/gcc/tree-emutls.c
@@ -366,9 +366,14 @@ new_emutls_decl (tree decl, tree alias_of)
else if (!alias_of)
varpool_node::add (to);
else
- varpool_node::create_alias (to,
- varpool_node::get_for_asmname
- (DECL_ASSEMBLER_NAME (DECL_VALUE_EXPR (alias_of)))->decl);
+ {
+ varpool_node *n;
+ varpool_node *t = varpool_node::get_for_asmname
+ (DECL_ASSEMBLER_NAME (DECL_VALUE_EXPR (alias_of)));
+
+ n = varpool_node::create_alias (to, t->decl);
+ n->resolve_alias (t);
+ }
return to;
}