diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-05-17 12:48:56 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-17 12:48:56 -0400 |
| commit | 9a22c8b6ca98fd01795f8cd4f3e9d92311175f13 (patch) | |
| tree | d580bf0cd72ee38b1b2d9aa0d6255d0de9b4369e /src/ir.cpp | |
| parent | 03ed9e4173131ac5e6157be500e3c50f7e0b0947 (diff) | |
| parent | 887bf8ba93a9d060e08e3792afd6b5b9dabd9ccf (diff) | |
| download | zig-9a22c8b6ca98fd01795f8cd4f3e9d92311175f13.tar.gz zig-9a22c8b6ca98fd01795f8cd4f3e9d92311175f13.zip | |
Merge pull request #5057 from xackus/opaque-param
stage1: fix assert fail on opaque fn ptr param
Diffstat (limited to 'src/ir.cpp')
| -rw-r--r-- | src/ir.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ir.cpp b/src/ir.cpp index 6bd4e9b805..20e83ecb9d 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -31109,6 +31109,19 @@ static ZigType *ir_resolve_lazy_fn_type(IrAnalyze *ira, AstNode *source_node, La ZigType *param_type = ir_resolve_type(ira, param_type_inst); if (type_is_invalid(param_type)) return nullptr; + + if(!is_valid_param_type(param_type)){ + if(param_type->id == ZigTypeIdOpaque){ + ir_add_error(ira, ¶m_type_inst->base, + buf_sprintf("parameter of opaque type '%s' not allowed", buf_ptr(¶m_type->name))); + } else { + ir_add_error(ira, ¶m_type_inst->base, + buf_sprintf("parameter of type '%s' not allowed", buf_ptr(¶m_type->name))); + } + + return nullptr; + } + switch (type_requires_comptime(ira->codegen, param_type)) { case ReqCompTimeYes: if (!calling_convention_allows_zig_types(fn_type_id.cc)) { |
