commit 8c8f6bfa642bf69a997bb64dc9bc7c89f7b86c3c (tree)
parent b5d1df091b3c2b8943a1bdece5d48a4355489a4e
Author: Evin Yulo <yujiri@disroot.org>
Date: Sat, 10 Dec 2022 02:50:37 +0000
Add test for #13366
Closes #13366
Diffstat:
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git 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
@@ -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);
+}