aboutsummaryrefslogtreecommitdiff
path: root/test/cases
diff options
context:
space:
mode:
authorBogdan Romanyuk <65823030+wrongnull@users.noreply.github.com>2023-10-16 04:30:39 +0300
committerGitHub <noreply@github.com>2023-10-16 01:30:39 +0000
commitebde525ccee41a8eefbb868cf4df756f1a937dd2 (patch)
tree5cb5a1b6780edb493d23275d01ab958651c0a556 /test/cases
parentfd6b3db34252f2a548630c0e57fe80f32202aa12 (diff)
downloadzig-ebde525ccee41a8eefbb868cf4df756f1a937dd2.tar.gz
zig-ebde525ccee41a8eefbb868cf4df756f1a937dd2.zip
Sema: fix `@extern` error on function pointer
Diffstat (limited to 'test/cases')
-rw-r--r--test/cases/compile_errors/invalid_type_in_builtin_extern.zig7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/cases/compile_errors/invalid_type_in_builtin_extern.zig b/test/cases/compile_errors/invalid_type_in_builtin_extern.zig
index 882febbb73..b082c4cb3f 100644
--- a/test/cases/compile_errors/invalid_type_in_builtin_extern.zig
+++ b/test/cases/compile_errors/invalid_type_in_builtin_extern.zig
@@ -1,7 +1,11 @@
const x = @extern(*comptime_int, .{ .name = "foo" });
+const y = @extern(*fn (u8) u8, .{ .name = "bar" });
pub export fn entry() void {
_ = x;
}
+pub export fn entry2() void {
+ _ = y;
+}
// error
// backend=stage2
@@ -9,3 +13,6 @@ pub export fn entry() void {
//
// :1:19: error: extern symbol cannot have type '*comptime_int'
// :1:19: note: pointer to comptime-only type 'comptime_int'
+// :2:19: error: extern symbol cannot have type '*fn (u8) u8'
+// :2:19: note: pointer to extern function must be 'const'
+// :2:19: note: extern function must specify calling convention