aboutsummaryrefslogtreecommitdiff
path: root/src/link
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2024-06-22 00:29:38 +0100
committermlugg <mlugg@mlugg.co.uk>2024-06-26 05:28:03 +0100
commit5b523d04690d8a01cb5d97e4f5a35443cb0cbde8 (patch)
treea7c8c3d8266f103e64b1876a0dca90a5a82b663f /src/link
parent3e9ab6aa7b2d90c25cb906d425a148abf9da3dcb (diff)
downloadzig-5b523d04690d8a01cb5d97e4f5a35443cb0cbde8.tar.gz
zig-5b523d04690d8a01cb5d97e4f5a35443cb0cbde8.zip
Zir: make `src_line` absolute for `declaration` instructions
We need special logic for updating line numbers anyway, so it's fine to just use absolute numbers here. This eliminates a field from `Decl`.
Diffstat (limited to 'src/link')
-rw-r--r--src/link/Dwarf.zig12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/link/Dwarf.zig b/src/link/Dwarf.zig
index ccfdfd0dbf..7d576abbb4 100644
--- a/src/link/Dwarf.zig
+++ b/src/link/Dwarf.zig
@@ -948,8 +948,8 @@ pub const DeclState = struct {
leb128.writeUnsignedFixed(4, self.dbg_line.addManyAsArrayAssumeCapacity(4), new_file);
}
- const old_src_line: i33 = self.mod.declPtr(old_func_info.owner_decl).src_line;
- const new_src_line: i33 = self.mod.declPtr(new_func_info.owner_decl).src_line;
+ const old_src_line: i33 = self.mod.declPtr(old_func_info.owner_decl).navSrcLine(self.mod);
+ const new_src_line: i33 = self.mod.declPtr(new_func_info.owner_decl).navSrcLine(self.mod);
if (new_src_line != old_src_line) {
self.dbg_line.appendAssumeCapacity(DW.LNS.advance_line);
leb128.writeSignedFixed(5, self.dbg_line.addManyAsArrayAssumeCapacity(5), new_src_line - old_src_line);
@@ -1116,11 +1116,11 @@ pub fn initDeclState(self: *Dwarf, mod: *Module, decl_index: InternPool.DeclInde
decl_state.dbg_line_func = decl.val.toIntern();
const func = decl.val.getFunction(mod).?;
log.debug("decl.src_line={d}, func.lbrace_line={d}, func.rbrace_line={d}", .{
- decl.src_line,
+ decl.navSrcLine(mod),
func.lbrace_line,
func.rbrace_line,
});
- const line: u28 = @intCast(decl.src_line + func.lbrace_line);
+ const line: u28 = @intCast(decl.navSrcLine(mod) + func.lbrace_line);
dbg_line_buffer.appendSliceAssumeCapacity(&.{
DW.LNS.extended_op,
@@ -1702,11 +1702,11 @@ pub fn updateDeclLineNumber(self: *Dwarf, mod: *Module, decl_index: InternPool.D
const decl = mod.declPtr(decl_index);
const func = decl.val.getFunction(mod).?;
log.debug("decl.src_line={d}, func.lbrace_line={d}, func.rbrace_line={d}", .{
- decl.src_line,
+ decl.navSrcLine(mod),
func.lbrace_line,
func.rbrace_line,
});
- const line: u28 = @intCast(decl.src_line + func.lbrace_line);
+ const line: u28 = @intCast(decl.navSrcLine(mod) + func.lbrace_line);
var data: [4]u8 = undefined;
leb128.writeUnsignedFixed(4, &data, line);