diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-05-25 18:08:51 +0300 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-05-25 19:57:38 +0300 |
| commit | d214b6bdf05204377d897afe3eacc0cac33c59a3 (patch) | |
| tree | 96fabebd64e369018b1fa4d24a784bb2cb15b33a /test/behavior/struct.zig | |
| parent | b0e8bf15f5017cf101eb31f74dd264eaf136045f (diff) | |
| download | zig-d214b6bdf05204377d897afe3eacc0cac33c59a3.tar.gz zig-d214b6bdf05204377d897afe3eacc0cac33c59a3.zip | |
stage2: packed struct fields do not have a byte offset
Diffstat (limited to 'test/behavior/struct.zig')
| -rw-r--r-- | test/behavior/struct.zig | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig index ab7d761de0..8370cd763e 100644 --- a/test/behavior/struct.zig +++ b/test/behavior/struct.zig @@ -1319,3 +1319,24 @@ test "packed struct aggregate init" { const result = @bitCast(u8, S.foo(1, 2)); try expect(result == 9); } + +test "packed struct field access via pointer" { + 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_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + + const S = struct { + fn doTheTest() !void { + const S = packed struct { a: u30 }; + var s1: S = .{ .a = 1 }; + var s2 = &s1; + try expect(s2.a == 1); + var s3: S = undefined; + var s4 = &s3; + _ = s4; + } + }; + try S.doTheTest(); + comptime try S.doTheTest(); +} |
