mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Fix link_name for variables
This commit is contained in:
@@ -1756,6 +1756,10 @@ irValue *ir_add_local_for_identifier(irProcedure *proc, Ast *ident, bool zero_in
|
|||||||
ir_emit_comment(proc, name);
|
ir_emit_comment(proc, name);
|
||||||
if (e->kind == Entity_Variable &&
|
if (e->kind == Entity_Variable &&
|
||||||
e->Variable.is_foreign) {
|
e->Variable.is_foreign) {
|
||||||
|
if (e->Variable.link_name.len != 0) {
|
||||||
|
name = e->Variable.link_name;
|
||||||
|
}
|
||||||
|
|
||||||
HashKey key = hash_string(name);
|
HashKey key = hash_string(name);
|
||||||
irValue **prev_value = map_get(&proc->module->members, key);
|
irValue **prev_value = map_get(&proc->module->members, key);
|
||||||
if (prev_value == nullptr) {
|
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;
|
bool no_name_mangle = e->Variable.link_name.len > 0 || is_foreign || is_export;
|
||||||
|
|
||||||
String name = e->token.string;
|
String name = e->token.string;
|
||||||
|
if (e->Variable.link_name.len > 0) {
|
||||||
|
name = e->Variable.link_name;
|
||||||
|
}
|
||||||
if (!no_name_mangle) {
|
if (!no_name_mangle) {
|
||||||
name = ir_mangle_name(s, e);
|
name = ir_mangle_name(s, e);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user