From 4e64373fc07a1e24735bcbdfd463e11839c8c273 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Fri, 30 Dec 2022 14:28:04 +0200 Subject: fix generic function arg debug info referencing wrong parameter Closes #14123 --- src/arch/sparc64/CodeGen.zig | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/arch/sparc64/CodeGen.zig') diff --git a/src/arch/sparc64/CodeGen.zig b/src/arch/sparc64/CodeGen.zig index e0a8d75444..943d21c47b 100644 --- a/src/arch/sparc64/CodeGen.zig +++ b/src/arch/sparc64/CodeGen.zig @@ -1016,7 +1016,7 @@ fn airArg(self: *Self, inst: Air.Inst.Index) !void { } }; - try self.genArgDbgInfo(inst, mcv, @intCast(u32, arg_index)); + try self.genArgDbgInfo(inst, mcv); if (self.liveness.isUnused(inst)) return self.finishAirBookkeeping(); @@ -3407,9 +3407,10 @@ fn finishAir(self: *Self, inst: Air.Inst.Index, result: MCValue, operands: [Live self.finishAirBookkeeping(); } -fn genArgDbgInfo(self: Self, inst: Air.Inst.Index, mcv: MCValue, arg_index: u32) !void { - const ty = self.air.instructions.items(.data)[inst].ty; - const name = self.mod_fn.getParamName(self.bin_file.options.module.?, arg_index); +fn genArgDbgInfo(self: Self, inst: Air.Inst.Index, mcv: MCValue) !void { + const arg = self.air.instructions.items(.data)[inst].arg; + const ty = self.air.getRefType(arg.ty); + const name = self.mod_fn.getParamName(self.bin_file.options.module.?, arg.src_index); switch (self.debug_output) { .dwarf => |dw| switch (mcv) { -- cgit v1.2.3