]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.link] cmd/link: convert callgraph to new style
authorCherry Zhang <cherryyz@google.com>
Fri, 27 Mar 2020 16:16:07 +0000 (12:16 -0400)
committerCherry Zhang <cherryyz@google.com>
Fri, 27 Mar 2020 23:50:47 +0000 (23:50 +0000)
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>
src/cmd/link/internal/ld/lib.go

index 88c51d65b3f68cbd7aa8705e5a7fa11ff550034b..2661827f972f444c3050c2c1de24d1af8e2fc96a 100644 (file)
@@ -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))
                        }
                }
        }