aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-06-30 23:24:52 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2023-06-30 23:24:52 -0400
commitf571438fc0010c0c45f79a2f709161a324c5a164 (patch)
tree894900ec24a7b37b437ee106564d9776d4217138 /test
parent2282c278850e29af81e463d55c81fa08855823f8 (diff)
downloadzig-f571438fc0010c0c45f79a2f709161a324c5a164.tar.gz
zig-f571438fc0010c0c45f79a2f709161a324c5a164.zip
Unrevert "Sema: preserve extern struct field alignment"
This unreverts commit 1a2468abfcd8b539193d943c1eefb71319cc7b88.
Diffstat (limited to 'test')
-rw-r--r--test/behavior/struct.zig21
1 files changed, 11 insertions, 10 deletions
diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig
index 1335498ca4..ab7b97ae94 100644
--- a/test/behavior/struct.zig
+++ b/test/behavior/struct.zig
@@ -1680,9 +1680,9 @@ test "extern struct field pointer has correct alignment" {
const S = struct {
fn doTheTest() !void {
- var a: extern struct { x: u32, y: u32 } = .{ .x = 1, .y = 2 };
- var b: extern struct { x: u32, y: u32 } align(1) = .{ .x = 3, .y = 4 };
- var c: extern struct { x: u32, y: u32 } align(64) = .{ .x = 5, .y = 6 };
+ var a: extern struct { x: u32, y: u16 } = .{ .x = 1, .y = 2 };
+ var b: extern struct { x: u32, y: u16 } align(1) = .{ .x = 3, .y = 4 };
+ var c: extern struct { x: u32, y: u16 } align(64) = .{ .x = 5, .y = 6 };
const axp = &a.x;
const bxp = &b.x;
@@ -1693,18 +1693,19 @@ test "extern struct field pointer has correct alignment" {
comptime assert(@TypeOf(axp) == *u32);
comptime assert(@TypeOf(bxp) == *align(1) u32);
- comptime assert(@TypeOf(cxp) == *align(64) u32); // first field, inherits larger alignment
- comptime assert(@TypeOf(ayp) == *u32);
- comptime assert(@TypeOf(byp) == *align(1) u32);
- comptime assert(@TypeOf(cyp) == *u32);
+ comptime assert(@TypeOf(cxp) == *align(64) u32);
+
+ comptime assert(@TypeOf(ayp) == *align(@alignOf(u32)) u16);
+ comptime assert(@TypeOf(byp) == *align(1) u16);
+ comptime assert(@TypeOf(cyp) == *align(@alignOf(u32)) u16);
try expectEqual(@as(u32, 1), axp.*);
try expectEqual(@as(u32, 3), bxp.*);
try expectEqual(@as(u32, 5), cxp.*);
- try expectEqual(@as(u32, 2), ayp.*);
- try expectEqual(@as(u32, 4), byp.*);
- try expectEqual(@as(u32, 6), cyp.*);
+ try expectEqual(@as(u16, 2), ayp.*);
+ try expectEqual(@as(u16, 4), byp.*);
+ try expectEqual(@as(u16, 6), cyp.*);
}
};