diff --git a/test/behavior.zig b/test/behavior.zig index 9e01526d1d..c632d39eb9 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -100,6 +100,7 @@ test { _ = @import("behavior/bugs/12488.zig"); _ = @import("behavior/bugs/12498.zig"); _ = @import("behavior/bugs/12551.zig"); + _ = @import("behavior/bugs/12571.zig"); _ = @import("behavior/bugs/12644.zig"); _ = @import("behavior/bugs/12680.zig"); _ = @import("behavior/bugs/12723.zig"); diff --git a/test/behavior/bugs/12571.zig b/test/behavior/bugs/12571.zig new file mode 100644 index 0000000000..4338051b18 --- /dev/null +++ b/test/behavior/bugs/12571.zig @@ -0,0 +1,22 @@ +const builtin = @import("builtin"); +const std = @import("std"); +const expect = std.testing.expect; + +const Frame = packed struct { + num: u20, +}; + +const Entry = packed struct { + other: u12, + frame: Frame, +}; + +test { + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + + const frame = Frame{ .num = 0x7FDE }; + var entry = Entry{ .other = 0, .frame = .{ .num = 0xFFFFF } }; + entry.frame = frame; + try expect(entry.frame.num == 0x7FDE); +}