aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/behavior.zig1
-rw-r--r--test/behavior/bugs/13366.zig28
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);
+}