aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2020-03-27 12:16:07 -0400
committerCherry Zhang <cherryyz@google.com>2020-03-27 23:50:47 +0000
commita9fb2e5155041615df59b5e3db9b546e723d0ff1 (patch)
treea4b6fefb158ef5fe50b6c1acf934f9d5c15026f8 /src/cmd
parent53a3b600a4fb5d40a29b8bd8c73be43148d703aa (diff)
downloadgo-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.go17
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))
}
}
}