diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/behavior/eval.zig | 17 | ||||
| -rw-r--r-- | test/behavior/translate_c_macros.zig | 5 |
2 files changed, 21 insertions, 1 deletions
diff --git a/test/behavior/eval.zig b/test/behavior/eval.zig index e56ea0cad5..0ea3a33990 100644 --- a/test/behavior/eval.zig +++ b/test/behavior/eval.zig @@ -1252,3 +1252,20 @@ test "pass pointer to field of comptime-only type as a runtime parameter" { }; try S.doTheTest(); } + +test "comptime write through extern struct reinterpreted as array" { + comptime { + const S = extern struct { + a: u8, + b: u8, + c: u8, + }; + var s: S = undefined; + @ptrCast(*[3]u8, &s)[0] = 1; + @ptrCast(*[3]u8, &s)[1] = 2; + @ptrCast(*[3]u8, &s)[2] = 3; + assert(s.a == 1); + assert(s.b == 2); + assert(s.c == 3); + } +} diff --git a/test/behavior/translate_c_macros.zig b/test/behavior/translate_c_macros.zig index ec2695b4a0..e44996b990 100644 --- a/test/behavior/translate_c_macros.zig +++ b/test/behavior/translate_c_macros.zig @@ -19,7 +19,10 @@ test "casting to void with a macro" { } test "initializer list expression" { - if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO try expectEqual(h.Color{ .r = 200, |
