diff options
| author | mlugg <mlugg@mlugg.co.uk> | 2024-06-22 00:29:38 +0100 |
|---|---|---|
| committer | mlugg <mlugg@mlugg.co.uk> | 2024-06-26 05:28:03 +0100 |
| commit | 5b523d04690d8a01cb5d97e4f5a35443cb0cbde8 (patch) | |
| tree | a7c8c3d8266f103e64b1876a0dca90a5a82b663f /src/link | |
| parent | 3e9ab6aa7b2d90c25cb906d425a148abf9da3dcb (diff) | |
| download | zig-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.zig | 12 |
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); |
