From af7e945a7dc00a2a5055d9770b9ecda253d64a8e Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 4 May 2022 18:45:59 -0700 Subject: stage2: fix `@sizeOf` for structs with comptime fields --- test/behavior/align.zig | 4 ++++ test/behavior/bitcast.zig | 4 ++++ test/behavior/struct.zig | 6 ++++++ 3 files changed, 14 insertions(+) (limited to 'test/behavior') diff --git a/test/behavior/align.zig b/test/behavior/align.zig index 393908d5bd..5a3a76beb2 100644 --- a/test/behavior/align.zig +++ b/test/behavior/align.zig @@ -55,6 +55,10 @@ test "alignment of struct with pointer has same alignment as usize" { } test "alignment and size of structs with 128-bit fields" { + if (builtin.zig_backend == .stage1) { + // stage1 gets the wrong answer for a lot of targets + return error.SkipZigTest; + } if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO diff --git a/test/behavior/bitcast.zig b/test/behavior/bitcast.zig index e74a4c44f4..4922b9473e 100644 --- a/test/behavior/bitcast.zig +++ b/test/behavior/bitcast.zig @@ -120,6 +120,10 @@ test "bitcast generates a temporary value" { } test "@bitCast packed structs at runtime and comptime" { + if (builtin.zig_backend == .stage1) { + // stage1 gets the wrong answer for a lot of targets + return error.SkipZigTest; + } if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig index ed75268f7d..24365d49b7 100644 --- a/test/behavior/struct.zig +++ b/test/behavior/struct.zig @@ -500,6 +500,10 @@ const Bitfields = packed struct { }; test "packed struct fields are ordered from LSB to MSB" { + if (builtin.zig_backend == .stage1) { + // stage1 gets the wrong answer for a lot of targets + return error.SkipZigTest; + } if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO @@ -971,6 +975,8 @@ test "comptime struct field" { comptime b: i32 = 1234, }; + comptime std.debug.assert(@sizeOf(T) == 4); + var foo: T = undefined; comptime try expect(foo.b == 1234); } -- cgit v1.2.3