mirror of https://github.com/golang/go.git
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
This commit is contained in:
parent
b91d2339bb
commit
507afa68c5
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue