diff options
| -rw-r--r-- | test/behavior.zig | 1 | ||||
| -rw-r--r-- | test/behavior/bugs/13366.zig | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/test/behavior.zig b/test/behavior.zig index c632d39eb9..5bb76b4f3f 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -128,6 +128,7 @@ test { _ = @import("behavior/bugs/13171.zig"); _ = @import("behavior/bugs/13209.zig"); _ = @import("behavior/bugs/13285.zig"); + _ = @import("behavior/bugs/13366.zig"); _ = @import("behavior/bugs/13435.zig"); _ = @import("behavior/bugs/13664.zig"); _ = @import("behavior/bugs/13714.zig"); diff --git a/test/behavior/bugs/13366.zig b/test/behavior/bugs/13366.zig new file mode 100644 index 0000000000..ff90ee00c3 --- /dev/null +++ b/test/behavior/bugs/13366.zig @@ -0,0 +1,28 @@ +const builtin = @import("builtin"); +const std = @import("std"); +const expect = std.testing.expect; + +const ComptimeReason = union(enum) { + c_import: struct { + a: u32, + }, +}; + +const Block = struct { + reason: ?*const ComptimeReason, +}; + +test { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + + var a: u32 = 16; + var reason = .{ .c_import = .{ .a = a } }; + var block = Block{ + .reason = &reason, + }; + try expect(block.reason.?.c_import.a == 16); +} |
