aboutsummaryrefslogtreecommitdiff
path: root/test/behavior
diff options
context:
space:
mode:
Diffstat (limited to 'test/behavior')
-rw-r--r--test/behavior/eval.zig17
-rw-r--r--test/behavior/translate_c_macros.zig5
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,