aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-04-07 10:23:51 +0200
committerAndrew Kelley <andrew@ziglang.org>2020-04-07 14:48:37 -0400
commitcc0fca9d83f5a62cf0e109dde3a323c01ea71301 (patch)
tree66ca390bafe42ef592d3ea7969e54e84851c5f9b /src/analyze.cpp
parentadaf7ad672e4933c42543a239ad91b58abba6942 (diff)
downloadzig-cc0fca9d83f5a62cf0e109dde3a323c01ea71301.tar.gz
zig-cc0fca9d83f5a62cf0e109dde3a323c01ea71301.zip
stage1: Respect the specified name for extern var
Extend the logic used for function definitions to variables. Closes #4947
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index 14b9c25c07..c3580e35ea 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -3498,7 +3498,7 @@ static void resolve_decl_fn(CodeGen *g, TldFn *tld_fn) {
}
} else {
fn_table_entry->inferred_async_node = inferred_async_none;
- g->external_prototypes.put_unique(tld_fn->base.name, &tld_fn->base);
+ g->external_symbol_names.put_unique(tld_fn->base.name, &tld_fn->base);
}
Scope *child_scope = fn_table_entry->fndef_scope ? &fn_table_entry->fndef_scope->base : tld_fn->base.parent_scope;
@@ -4048,6 +4048,10 @@ static void resolve_decl_var(CodeGen *g, TldVar *tld_var, bool allow_lazy) {
add_var_export(g, tld_var->var, tld_var->var->name, GlobalLinkageIdStrong);
}
+ if (is_extern) {
+ g->external_symbol_names.put_unique(tld_var->base.name, &tld_var->base);
+ }
+
g->global_vars.append(tld_var);
}