diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-12-30 14:28:04 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-12-30 17:00:50 +0200 |
| commit | 4e64373fc07a1e24735bcbdfd463e11839c8c273 (patch) | |
| tree | e59da20f467d336240c12cdc832834f22f361b30 /src/arch/sparc64/CodeGen.zig | |
| parent | 4b5fc5239c37fa3f49965188256a781c7b1277a3 (diff) | |
| download | zig-4e64373fc07a1e24735bcbdfd463e11839c8c273.tar.gz zig-4e64373fc07a1e24735bcbdfd463e11839c8c273.zip | |
fix generic function arg debug info referencing wrong parameter
Closes #14123
Diffstat (limited to 'src/arch/sparc64/CodeGen.zig')
| -rw-r--r-- | src/arch/sparc64/CodeGen.zig | 9 |
1 files changed, 5 insertions, 4 deletions
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) { |
