diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-08-28 15:39:32 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-08-28 15:39:32 -0400 |
| commit | 901b5c1566a497822b98ba9327578839bac3df50 (patch) | |
| tree | a086b61f7e6d4ee6b252c9c1ca037b48d77edee8 /src/analyze.cpp | |
| parent | 09cc1dc66067f378a1508e34c0714b659b445724 (diff) | |
| download | zig-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.cpp | 7 |
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); |
