]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: fix -a with external linker
authorClément Chigot <clement.chigot@atos.net>
Wed, 23 Jan 2019 08:01:37 +0000 (09:01 +0100)
committerIan Lance Taylor <iant@golang.org>
Wed, 27 Feb 2019 21:41:32 +0000 (21:41 +0000)
This commit fixes a panic when -a was used with external linkmode.

Fixes #29807

Change-Id: I8cd42775f2953cec620cbc9ab345421c2694c9a2
Reviewed-on: https://go-review.googlesource.com/c/158998
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/link/internal/ld/data.go

index e0fad1acfdc90b4faef823afe42a9726e7e1297e..0bd7d82b544b0e826b7dc6231b622e2d9f51ec77 100644 (file)
@@ -824,8 +824,10 @@ func Datblk(ctxt *Link, addr int64, size int64) {
                for i := range sym.R {
                        r := &sym.R[i] // Copying sym.Reloc has measurable impact on performance
                        rsname := ""
+                       rsval := int64(0)
                        if r.Sym != nil {
                                rsname = r.Sym.Name
+                               rsval = r.Sym.Value
                        }
                        typ := "?"
                        switch r.Type {
@@ -836,7 +838,7 @@ func Datblk(ctxt *Link, addr int64, size int64) {
                        case objabi.R_CALL:
                                typ = "call"
                        }
-                       ctxt.Logf("\treloc %.8x/%d %s %s+%#x [%#x]\n", uint(sym.Value+int64(r.Off)), r.Siz, typ, rsname, r.Add, r.Sym.Value+r.Add)
+                       ctxt.Logf("\treloc %.8x/%d %s %s+%#x [%#x]\n", uint(sym.Value+int64(r.Off)), r.Siz, typ, rsname, r.Add, rsval+r.Add)
                }
        }