From 507afa68c5a3ce37a824288d19d8b8b0918a1530 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 10 Jun 2014 14:11:39 -0700 Subject: [PATCH] cmd/ld: fix PC deltas in DWARF line number table The putpclcdelta function set the DWARF line number PC to s->value + pcline->pc, which is correct, but the code then set the local variable pc to epc, which can be a different value. This caused the next delta in the DWARF table to be wrong. Fixes #8098. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/104950045 --- src/cmd/ld/dwarf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cmd/ld/dwarf.c b/src/cmd/ld/dwarf.c index cee591ffa6..cc77b45cd6 100644 --- a/src/cmd/ld/dwarf.c +++ b/src/cmd/ld/dwarf.c @@ -1624,13 +1624,13 @@ writelines(void) } putpclcdelta(s->value + pcline.pc - pc, pcline.value - line); - pc = epc; + pc = s->value + pcline.pc; + line = pcline.value; if(pcfile.nextpc < pcline.nextpc) epc = pcfile.nextpc; else epc = pcline.nextpc; epc += s->value; - line = pcline.value; } da = 0; -- 2.48.1