aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorr00ster91 <r00ster91@proton.me>2023-01-29 23:25:31 +0100
committerVeikka Tuominen <git@vexu.eu>2023-01-31 17:15:34 +0200
commit17404f8e6edea28fc70e074fd75101e1ed48b620 (patch)
tree46bbfde37de9f02406089c0dbf291f18714aa0e2 /src
parentd6b430b520103fb6691b2c18ae06c2f2a360e806 (diff)
downloadzig-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.zig7
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", .{