From 0777e98bfe89eadeaa0e34a2ad07cf61cdf5b26a Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Thu, 1 Jun 2023 01:44:39 -0400 Subject: Sema: disable repeated aggregate storage use with mismatching sentinel The InternPool implementation was not written to support this, but that could be changed and this check removed in the future. --- src/Sema.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sema.zig b/src/Sema.zig index 0cc657ba01..a0d7c483d9 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -13094,7 +13094,7 @@ fn zirArrayMul(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai const val = v: { // Optimization for the common pattern of a single element repeated N times, such // as zero-filling a byte array. - if (lhs_len == 1) { + if (lhs_len == 1 and lhs_info.sentinel == null) { const elem_val = try lhs_sub_val.elemValue(mod, 0); break :v try mod.intern(.{ .aggregate = .{ .ty = result_ty.toIntern(), -- cgit v1.2.3