aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-06-11 16:55:38 -0400
committerRuss Cox <rsc@golang.org>2014-06-11 16:55:38 -0400
commit16367614fbcd4ccdc6662e71bea76f3fbe6a7545 (patch)
tree8c3c08d2388946733c24b62b25c5c49a78654f8b
parentcbffba160ce7b9333898592118871d1fe5fbd7ca (diff)
downloadgo-16367614fbcd4ccdc6662e71bea76f3fbe6a7545.tar.gz
go-16367614fbcd4ccdc6662e71bea76f3fbe6a7545.zip
[release-branch.go1.3] cmd/ld: fix PC deltas in DWARF line number table
««« CL 104950045 / 87daa424d96a 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 »»» LGTM=r R=golang-codereviews, r CC=bradfitz, golang-codereviews, iant https://golang.org/cl/107900045
-rw-r--r--src/cmd/ld/dwarf.c4
1 files 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;