authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-05-16 00:04:16-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-05-16 00:04:16-07:00
logc8b78706b74d16ed21113096d2b47717abb53d4d
tree39a61c5dcc06ac8fd1afe128f2239f3700347638
parentae04ec776d87eb6312b9172fc494f1ab25c1c52e

linker: update MachO DebugSymbols to use the new line/column Decl API


1 files changed, 2 insertions(+), 16 deletions(-)

src/link/MachO/DebugSymbols.zig+2-16
......@@ -1063,22 +1063,8 @@ pub fn commitDeclDebugInfo(
10631063 try leb.writeULEB128(dbg_line_buffer.writer(), text_block.size);
10641064
10651065 try dbg_line_buffer.append(DW.LNS_advance_line);
1066 const line_off: u28 = blk: {
1067 const tree = decl.container.file_scope.tree;
1068 const node_tags = tree.nodes.items(.tag);
1069 const node_datas = tree.nodes.items(.data);
1070 const token_starts = tree.tokens.items(.start);
1071
1072 // TODO Look into improving the performance here by adding a token-index-to-line
1073 // lookup table. Currently this involves scanning over the source code for newlines.
1074 const fn_decl = decl.src_node;
1075 assert(node_tags[fn_decl] == .fn_decl);
1076 const block = node_datas[fn_decl].rhs;
1077 const lbrace = tree.firstToken(block);
1078 const rbrace = tree.lastToken(block);
1079 const line_delta = std.zig.lineDelta(tree.source, token_starts[lbrace], token_starts[rbrace]);
1080 break :blk @intCast(u28, line_delta);
1081 };
1066 const func = decl.val.castTag(.function).?.data;
1067 const line_off = @intCast(u28, decl.src_line + func.lbrace_line);
10821068 try leb.writeULEB128(dbg_line_buffer.writer(), line_off);
10831069 }
10841070