| author | |
| committer | |
| log | 36fc2d2607f350961b66654da7d2a28eade723a2 |
| tree | 8dba1390586cc2f8e94474786f2eb60809bc2441 |
| parent | 61ee9f94158bdd595a3cec632c6690672127ad71 |
2 files changed, 18 insertions(+), 0 deletions(-)
lib/std/zig/AstGen.zig+4| ... | ... | @@ -5913,6 +5913,10 @@ fn containerDecl( |
| 5913 | 5913 | var wip_members = try WipMembers.init(gpa, &astgen.scratch, decl_count, 0, 0, 0); |
| 5914 | 5914 | defer wip_members.deinit(); |
| 5915 | 5915 | |
| 5916 | if (container_decl.layout_token) |layout_token| { | |
| 5917 | return astgen.failTok(layout_token, "opaque types do not support 'packed' or 'extern'", .{}); | |
| 5918 | } | |
| 5919 | ||
| 5916 | 5920 | for (container_decl.ast.members) |member_node| { |
| 5917 | 5921 | const res = try containerMember(&block_scope, &namespace.base, &wip_members, member_node); |
| 5918 | 5922 | if (res == .field) { |
test/cases/compile_errors/extern_packed_on_opaque.zig created+14| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | const X = extern opaque {}; | |
| 2 | const Y = packed opaque {}; | |
| 3 | ||
| 4 | export fn foo(x: *X, y: *Y) void { | |
| 5 | _ = x; | |
| 6 | _ = y; | |
| 7 | } | |
| 8 | ||
| 9 | // error | |
| 10 | // backend=stage2 | |
| 11 | // target=native | |
| 12 | // | |
| 13 | // :1:11: error: opaque types do not support 'packed' or 'extern' | |
| 14 | // :2:11: error: opaque types do not support 'packed' or 'extern' |