From 7ba339e6bda99174b5f311d8897ea4f85ce853b7 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 11 Apr 2020 19:34:29 +0100 Subject: Fix link_name for variables --- src/ir.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index b14943d23..d0c101dbb 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -1756,6 +1756,10 @@ irValue *ir_add_local_for_identifier(irProcedure *proc, Ast *ident, bool zero_in ir_emit_comment(proc, name); if (e->kind == Entity_Variable && e->Variable.is_foreign) { + if (e->Variable.link_name.len != 0) { + name = e->Variable.link_name; + } + HashKey key = hash_string(name); irValue **prev_value = map_get(&proc->module->members, key); if (prev_value == nullptr) { @@ -11943,6 +11947,9 @@ void ir_gen_tree(irGen *s) { bool no_name_mangle = e->Variable.link_name.len > 0 || is_foreign || is_export; String name = e->token.string; + if (e->Variable.link_name.len > 0) { + name = e->Variable.link_name; + } if (!no_name_mangle) { name = ir_mangle_name(s, e); } -- cgit v1.2.3