Commit 507afa68 authored by Ian Lance Taylor's avatar Ian Lance Taylor

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
parent b91d2339
...@@ -1624,13 +1624,13 @@ writelines(void) ...@@ -1624,13 +1624,13 @@ writelines(void)
} }
putpclcdelta(s->value + pcline.pc - pc, pcline.value - line); putpclcdelta(s->value + pcline.pc - pc, pcline.value - line);
pc = epc; pc = s->value + pcline.pc;
line = pcline.value;
if(pcfile.nextpc < pcline.nextpc) if(pcfile.nextpc < pcline.nextpc)
epc = pcfile.nextpc; epc = pcfile.nextpc;
else else
epc = pcline.nextpc; epc = pcline.nextpc;
epc += s->value; epc += s->value;
line = pcline.value;
} }
da = 0; da = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment