fix: add .break_inline ir instruction to ensure interned values can be referenced

This commit is contained in:
Brett Broadhurst 2026-03-31 15:11:54 -06:00
parent aad95a75ee
commit 01cc996183
Failed to generate hash of commit
4 changed files with 15 additions and 4 deletions

View file

@ -629,6 +629,12 @@ fn irBreak(sema: *Sema, inst: Ir.Inst.Index) InnerError!void {
_ = inst;
}
fn irBreakInline(sema: *Sema, inst: Ir.Inst.Index) InnerError!ValueInfo {
const data = sema.ir.instructions[@intFromEnum(inst)].data.bin;
const rvalue_inst = sema.resolveInst(data.rhs);
return rvalue_inst;
}
fn irBlock(sema: *Sema, builder: *Builder, inst: Ir.Inst.Index) InnerError!void {
const data = sema.ir.instructions[@intFromEnum(inst)].data.payload;
const extra = sema.ir.extraData(Ir.Inst.Block, data.extra_index);
@ -1002,6 +1008,7 @@ fn analyzeBodyInner(
try irBreak(sema, inst);
continue;
},
.break_inline => try irBreakInline(sema, inst),
.block => {
try irBlock(sema, builder, inst);
continue;