aboutsummaryrefslogtreecommitdiff
path: root/src/arch/sparc64/CodeGen.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-12-30 14:28:04 +0200
committerVeikka Tuominen <git@vexu.eu>2022-12-30 17:00:50 +0200
commit4e64373fc07a1e24735bcbdfd463e11839c8c273 (patch)
treee59da20f467d336240c12cdc832834f22f361b30 /src/arch/sparc64/CodeGen.zig
parent4b5fc5239c37fa3f49965188256a781c7b1277a3 (diff)
downloadzig-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.zig9
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) {