authorgravatar for wrongnull@gmail.comBogdan Romanyuk <wrongnull@gmail.com> 2023-11-05 13:36:06+03:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2023-11-05 12:36:06+02:00
loge9a6197a8ea38c228e2683d82cfbdbad8e7d912a
treea35378edac7d399d7752e987b3cd55806e391666
parent33644546a0c17e48f0a3f7b59d9bd0a749666173
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Sema: fix error notes with wrong extern type


2 files changed, 15 insertions(+), 1 deletions(-)

src/Sema.zig+1-1
......@@ -25573,7 +25573,7 @@ fn explainWhyTypeIsNotExtern(
2557325573 try mod.errNoteNonLazy(src_loc, msg, "pointer to comptime-only type '{}'", .{pointee_ty.fmt(sema.mod)});
2557425574 try sema.explainWhyTypeIsComptime(msg, src_loc, ty);
2557525575 }
25576 try sema.explainWhyTypeIsNotExtern(msg, src_loc, pointee_ty, position);
25576 try sema.explainWhyTypeIsNotExtern(msg, src_loc, pointee_ty, .other);
2557725577 }
2557825578 },
2557925579 .Void => try mod.errNoteNonLazy(src_loc, msg, "'void' is a zero bit type; for C 'void' use 'anyopaque'", .{}),
test/cases/compile_errors/extern_function_with_unspecified_calling_convention.zig created+14
......@@ -0,0 +1,14 @@
1const Foo = extern struct {
2 f: *const fn() void,
3};
4
5pub fn entry() void {
6 _ = (Foo{}).f;
7}
8
9// error
10// backend=stage2
11// target=native
12//
13// :2:8: error: extern structs cannot contain fields of type '*const fn () void'
14// :2:8: note: extern function must specify calling convention