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.zig24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/behavior/array.zig b/test/behavior/array.zig
index a4cac26569..523855161a 100644
--- a/test/behavior/array.zig
+++ b/test/behavior/array.zig
@@ -775,3 +775,27 @@ test "array init with no result pointer sets field result types" {
try expect(y == x);
}
+
+test "runtime side-effects in comptime-known array init" {
+ var side_effects: u4 = 0;
+ const init = [4]u4{
+ blk: {
+ side_effects += 1;
+ break :blk 1;
+ },
+ blk: {
+ side_effects += 2;
+ break :blk 2;
+ },
+ blk: {
+ side_effects += 4;
+ break :blk 4;
+ },
+ blk: {
+ side_effects += 8;
+ break :blk 8;
+ },
+ };
+ try expectEqual([4]u4{ 1, 2, 4, 8 }, init);
+ try expectEqual(@as(u4, std.math.maxInt(u4)), side_effects);
+}