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.
This commit is contained in:
Jacob Young
2023-06-01 01:44:39 -04:00
committed by Andrew Kelley
parent a3b3ac0ea4
commit 0777e98bfe

View File

@@ -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(),