From 50a1ca24ca2a4311097132d660b8244f252da82f Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Mon, 14 Mar 2022 10:37:23 -0700 Subject: [PATCH] Add test for issue #11139 --- test/behavior.zig | 1 + test/behavior/bugs/11139.zig | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 test/behavior/bugs/11139.zig diff --git a/test/behavior.zig b/test/behavior.zig index 22298ef191..987c8c3473 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -62,6 +62,7 @@ test { _ = @import("behavior/bugs/11100.zig"); _ = @import("behavior/bugs/10970.zig"); _ = @import("behavior/bugs/11046.zig"); + _ = @import("behavior/bugs/11139.zig"); _ = @import("behavior/bugs/11165.zig"); _ = @import("behavior/call.zig"); _ = @import("behavior/cast.zig"); diff --git a/test/behavior/bugs/11139.zig b/test/behavior/bugs/11139.zig new file mode 100644 index 0000000000..a3714ec5ba --- /dev/null +++ b/test/behavior/bugs/11139.zig @@ -0,0 +1,25 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const expect = std.testing.expect; + +test "store array of array of structs at comptime" { + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + + try expect(storeArrayOfArrayOfStructs() == 15); + comptime try expect(storeArrayOfArrayOfStructs() == 15); +} + +fn storeArrayOfArrayOfStructs() u8 { + const S = struct { + x: u8, + }; + + var cases = [_][1]S{ + [_]S{ + S{ .x = 15 }, + }, + }; + return cases[0][0].x; +}