fix: add .break_inline ir instruction to ensure interned values can be referenced
This commit is contained in:
parent
aad95a75ee
commit
01cc996183
4 changed files with 15 additions and 4 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue