aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-02-02 15:58:13 -0700
committerAndrew Kelley <superjoe30@gmail.com>2016-02-02 15:58:13 -0700
commit79adf55699a549841eba3eb07f1dbb19c4da9ed1 (patch)
treebb6ddb73b7b31a53ee198a068719204fa285eb0f /src
parent7af59c76e40d185ed1a8962c2d5fd0f88680d5a7 (diff)
downloadzig-79adf55699a549841eba3eb07f1dbb19c4da9ed1.tar.gz
zig-79adf55699a549841eba3eb07f1dbb19c4da9ed1.zip
fx segfault with colliding bogus top level functions
Diffstat (limited to 'src')
-rw-r--r--src/analyze.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index 7af8632b96..bf6bcee289 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -5038,7 +5038,12 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast
decl_node->name = name;
decl_node->import = import;
if (decl_node->deps.size() > 0) {
- g->unresolved_top_level_decls.put(name, node);
+ if (g->unresolved_top_level_decls.maybe_get(name)) {
+ node->data.fn_proto.skip = true;
+ add_node_error(g, node, buf_sprintf("redefinition of '%s'", buf_ptr(name)));
+ } else {
+ g->unresolved_top_level_decls.put(name, node);
+ }
} else {
resolve_top_level_decl(g, import, node);
}