diff options
| author | Cherry Zhang <cherryyz@google.com> | 2020-03-27 12:16:07 -0400 |
|---|---|---|
| committer | Cherry Zhang <cherryyz@google.com> | 2020-03-27 23:50:47 +0000 |
| commit | a9fb2e5155041615df59b5e3db9b546e723d0ff1 (patch) | |
| tree | a4b6fefb158ef5fe50b6c1acf934f9d5c15026f8 /src/cmd | |
| parent | 53a3b600a4fb5d40a29b8bd8c73be43148d703aa (diff) | |
| download | go-a9fb2e5155041615df59b5e3db9b546e723d0ff1.tar.xz | |
[dev.link] cmd/link: convert callgraph to new style
Change-Id: I24ca987d1264e5b568c60c0dee7334a117473e52
Reviewed-on: https://go-review.googlesource.com/c/go/+/226117
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/link/internal/ld/lib.go | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 88c51d65b3..2661827f97 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -2680,16 +2680,17 @@ func (ctxt *Link) callgraph() { return } - var i int - var r *sym.Reloc - for _, s := range ctxt.Textp { - for i = 0; i < len(s.R); i++ { - r = &s.R[i] - if r.Sym == nil { + ldr := ctxt.loader + for _, s := range ctxt.Textp2 { + relocs := ldr.Relocs(s) + for i := 0; i < relocs.Count; i++ { + r := relocs.At2(i) + rs := r.Sym() + if rs == 0 { continue } - if r.Type.IsDirectCall() && r.Sym.Type == sym.STEXT { - ctxt.Logf("%s calls %s\n", s.Name, r.Sym.Name) + if r.Type().IsDirectCall() && (ldr.SymType(rs) == sym.STEXT || ldr.SymType(rs) == sym.SABIALIAS) { + ctxt.Logf("%s calls %s\n", ldr.SymName(s), ldr.SymName(rs)) } } } |
