diff options
Diffstat (limited to 'test/behavior/struct.zig')
| -rw-r--r-- | test/behavior/struct.zig | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig index 0984f7d1e4..db7092ab82 100644 --- a/test/behavior/struct.zig +++ b/test/behavior/struct.zig @@ -1359,33 +1359,23 @@ test "under-aligned struct field" { try expect(result == 1234); } -test "fieldParentPtr of a zero-bit field" { +test "address of zero-bit field is equal to address of only field" { 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 testOneType(comptime A: type) !void { - { - const a = A{ .u = 0 }; - const b_ptr = &a.b; - const a_ptr = @fieldParentPtr(A, "b", b_ptr); - try std.testing.expectEqual(&a, a_ptr); - } - { - var a = A{ .u = 0 }; - const b_ptr = &a.b; - const a_ptr = @fieldParentPtr(A, "b", b_ptr); - try std.testing.expectEqual(&a, a_ptr); - } - } - fn doTheTest() !void { - try testOneType(struct { b: void = {}, u: u8 }); - try testOneType(struct { u: u8, b: void = {} }); - } - }; - try S.doTheTest(); - comptime try S.doTheTest(); + { + const A = struct { b: void = {}, u: u8 }; + var a = A{ .u = 0 }; + const a_ptr = @fieldParentPtr(A, "b", &a.b); + try std.testing.expectEqual(&a, a_ptr); + } + { + const A = struct { u: u8, b: void = {} }; + var a = A{ .u = 0 }; + const a_ptr = @fieldParentPtr(A, "b", &a.b); + try std.testing.expectEqual(&a, a_ptr); + } } test "struct field has a pointer to an aligned version of itself" { |
