From 179f16904f47a0455c656a49bd7dd5ee8ceb54fe Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Tue, 8 Nov 2022 13:59:06 +0100 Subject: [PATCH] aarch64: circumvent zig0 inference problems --- src/arch/aarch64/CodeGen.zig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/arch/aarch64/CodeGen.zig b/src/arch/aarch64/CodeGen.zig index 532409c279..3bea24f57a 100644 --- a/src/arch/aarch64/CodeGen.zig +++ b/src/arch/aarch64/CodeGen.zig @@ -3067,7 +3067,12 @@ fn airSaveErrReturnTraceIndex(self: *Self, inst: Air.Inst.Index) !void { fn airWrapOptional(self: *Self, inst: Air.Inst.Index) !void { const ty_op = self.air.instructions.items(.data)[inst].ty_op; - const result: MCValue = if (self.liveness.isUnused(inst)) .dead else result: { + + if (self.liveness.isUnused(inst)) { + return self.finishAir(inst, .dead, .{ ty_op.operand, .none, .none }); + } + + const result: MCValue = result: { const payload_ty = self.air.typeOf(ty_op.operand); if (!payload_ty.hasRuntimeBits()) { break :result MCValue{ .immediate = 1 }; @@ -3100,6 +3105,7 @@ fn airWrapOptional(self: *Self, inst: Air.Inst.Index) !void { break :result MCValue{ .stack_offset = stack_offset }; }; + return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); }