mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 21:08:36 +00:00
AstGen: make layout specifiers on opaque containers a compile error
This commit is contained in:
parent
61ee9f9415
commit
36fc2d2607
@ -5913,6 +5913,10 @@ fn containerDecl(
|
||||
var wip_members = try WipMembers.init(gpa, &astgen.scratch, decl_count, 0, 0, 0);
|
||||
defer wip_members.deinit();
|
||||
|
||||
if (container_decl.layout_token) |layout_token| {
|
||||
return astgen.failTok(layout_token, "opaque types do not support 'packed' or 'extern'", .{});
|
||||
}
|
||||
|
||||
for (container_decl.ast.members) |member_node| {
|
||||
const res = try containerMember(&block_scope, &namespace.base, &wip_members, member_node);
|
||||
if (res == .field) {
|
||||
|
||||
14
test/cases/compile_errors/extern_packed_on_opaque.zig
Normal file
14
test/cases/compile_errors/extern_packed_on_opaque.zig
Normal file
@ -0,0 +1,14 @@
|
||||
const X = extern opaque {};
|
||||
const Y = packed opaque {};
|
||||
|
||||
export fn foo(x: *X, y: *Y) void {
|
||||
_ = x;
|
||||
_ = y;
|
||||
}
|
||||
|
||||
// error
|
||||
// backend=stage2
|
||||
// target=native
|
||||
//
|
||||
// :1:11: error: opaque types do not support 'packed' or 'extern'
|
||||
// :2:11: error: opaque types do not support 'packed' or 'extern'
|
||||
Loading…
x
Reference in New Issue
Block a user