aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/array.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/behavior/array.zig')
-rw-r--r--test/behavior/array.zig22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/behavior/array.zig b/test/behavior/array.zig
index 6311c4cd30..f1dcb3b95d 100644
--- a/test/behavior/array.zig
+++ b/test/behavior/array.zig
@@ -574,3 +574,25 @@ test "tuple to array handles sentinel" {
};
try expect(S.b[0] == 1);
}
+
+test "array init of container level array variable" {
+ 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 {
+ var pair: [2]usize = .{ 1, 2 };
+ noinline fn foo(x: usize, y: usize) void {
+ pair = [2]usize{ x, y };
+ }
+ noinline fn bar(x: usize, y: usize) void {
+ var tmp: [2]usize = .{ x, y };
+ pair = tmp;
+ }
+ };
+ try expectEqual([2]usize{ 1, 2 }, S.pair);
+ S.foo(3, 4);
+ try expectEqual([2]usize{ 3, 4 }, S.pair);
+ S.bar(5, 6);
+ try expectEqual([2]usize{ 5, 6 }, S.pair);
+}