diff options
| author | r00ster91 <r00ster91@proton.me> | 2023-01-29 23:25:31 +0100 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2023-01-31 17:15:34 +0200 |
| commit | 17404f8e6edea28fc70e074fd75101e1ed48b620 (patch) | |
| tree | 46bbfde37de9f02406089c0dbf291f18714aa0e2 /src | |
| parent | d6b430b520103fb6691b2c18ae06c2f2a360e806 (diff) | |
| download | zig-17404f8e6edea28fc70e074fd75101e1ed48b620.tar.gz zig-17404f8e6edea28fc70e074fd75101e1ed48b620.zip | |
Sema: emit compile error for comptime or inline call of function pointer
Diffstat (limited to 'src')
| -rw-r--r-- | src/Sema.zig | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 9c553a0092..7448fd149c 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -6446,7 +6446,12 @@ fn analyzeCall( .extern_fn => return sema.fail(block, call_src, "{s} call of extern function", .{ @as([]const u8, if (is_comptime_call) "comptime" else "inline"), }), - else => unreachable, + else => { + assert(callee_ty.isPtrAtRuntime()); + return sema.fail(block, call_src, "{s} call of function pointer", .{ + @as([]const u8, if (is_comptime_call) "comptime" else "inline"), + }); + }, }; if (func_ty_info.is_var_args) { return sema.fail(block, call_src, "{s} call of variadic function", .{ |
