aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-08-28 15:39:32 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-08-28 15:39:32 -0400
commit901b5c1566a497822b98ba9327578839bac3df50 (patch)
treea086b61f7e6d4ee6b252c9c1ca037b48d77edee8 /src/analyze.cpp
parent09cc1dc66067f378a1508e34c0714b659b445724 (diff)
downloadzig-901b5c1566a497822b98ba9327578839bac3df50.tar.gz
zig-901b5c1566a497822b98ba9327578839bac3df50.zip
add compile error for function prototype with no body
closes #1231
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index ccab9170e9..405e010ba4 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -3242,6 +3242,13 @@ static void add_top_level_decl(CodeGen *g, ScopeDecls *decls_scope, Tld *tld) {
} else if (tld->id == TldIdFn) {
assert(tld->source_node->type == NodeTypeFnProto);
is_export = tld->source_node->data.fn_proto.is_export;
+
+ if (!is_export && !tld->source_node->data.fn_proto.is_extern &&
+ tld->source_node->data.fn_proto.fn_def_node == nullptr)
+ {
+ add_node_error(g, tld->source_node, buf_sprintf("non-extern function has no body"));
+ return;
+ }
}
if (is_export) {
g->resolve_queue.append(tld);