diff options
| author | Shenghou Ma <minux@golang.org> | 2014-08-07 18:36:42 -0400 |
|---|---|---|
| committer | Shenghou Ma <minux@golang.org> | 2014-08-07 18:36:42 -0400 |
| commit | 6e02e1cfc2a75380477a5a1f6f1e55a76b72f412 (patch) | |
| tree | 042cd7d8c8368e6b2ae270289d5faa8457528e1e /src/cmd/ld/data.c | |
| parent | 95e8a3a1da2ba736c685424ecd9f23f6e78f27aa (diff) | |
| download | go-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.c | 4 |
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++) |
