aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/ld/data.c
diff options
context:
space:
mode:
authorShenghou Ma <minux@golang.org>2014-08-07 18:36:42 -0400
committerShenghou Ma <minux@golang.org>2014-08-07 18:36:42 -0400
commit6e02e1cfc2a75380477a5a1f6f1e55a76b72f412 (patch)
tree042cd7d8c8368e6b2ae270289d5faa8457528e1e /src/cmd/ld/data.c
parent95e8a3a1da2ba736c685424ecd9f23f6e78f27aa (diff)
downloadgo-6e02e1cfc2a75380477a5a1f6f1e55a76b72f412.tar.xz
[dev.power64] cmd/ld: update for power64
LGTM=rsc R=rsc, iant CC=golang-codereviews https://golang.org/cl/121380043
Diffstat (limited to 'src/cmd/ld/data.c')
-rw-r--r--src/cmd/ld/data.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cmd/ld/data.c b/src/cmd/ld/data.c
index 96eadd479a..702f559a88 100644
--- a/src/cmd/ld/data.c
+++ b/src/cmd/ld/data.c
@@ -441,11 +441,11 @@ blk(LSym *start, int32 addr, int32 size)
continue;
if(sym->value >= eaddr)
break;
+ ctxt->cursym = sym;
if(sym->value < addr) {
diag("phase error: addr=%#llx but sym=%#llx type=%d", (vlong)addr, (vlong)sym->value, sym->type);
errorexit();
}
- ctxt->cursym = sym;
for(; addr < sym->value; addr++)
cput(0);
p = sym->p;
@@ -459,6 +459,8 @@ blk(LSym *start, int32 addr, int32 size)
diag("phase error: addr=%#llx value+size=%#llx", (vlong)addr, (vlong)sym->value+sym->size);
errorexit();
}
+ if(sym->value+sym->size >= eaddr)
+ break;
}
for(; addr < eaddr; addr++)