From: Josh Bleecher Snyder Date: Thu, 13 Apr 2017 13:31:05 +0000 (-0700) Subject: cmd/compile: refactor Linksym X-Git-Tag: go1.9beta1~704 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=adc80c0665c0aa9a4a504e5c5dd2ddf981d3a8c3;p=gostls13.git cmd/compile: refactor Linksym Extract a helper function, linksymname. This simplifies Linksym, and linksymname will be useful in future work. Change-Id: Ic5ff8b704a16d5020f6931e008e2f630f687cbd3 Reviewed-on: https://go-review.googlesource.com/40550 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/compile/internal/gc/obj.go b/src/cmd/compile/internal/gc/obj.go index ef5ce3191e..8062a43126 100644 --- a/src/cmd/compile/internal/gc/obj.go +++ b/src/cmd/compile/internal/gc/obj.go @@ -227,25 +227,24 @@ func dumpglobls() { funcsyms = nil } +func linksymname(s *types.Sym) string { + if isblanksym(s) { + return "_" + } + if s.Linkname != "" { + return s.Linkname + } + return s.Pkg.Prefix + "." + s.Name +} + func Linksym(s *types.Sym) *obj.LSym { if s == nil { return nil } - if s.Lsym != nil { - return s.Lsym + if s.Lsym == nil { + s.Lsym = Ctxt.Lookup(linksymname(s), 0) } - var name string - if isblanksym(s) { - name = "_" - } else if s.Linkname != "" { - name = s.Linkname - } else { - name = s.Pkg.Prefix + "." + s.Name - } - - ls := Ctxt.Lookup(name, 0) - s.Lsym = ls - return ls + return s.Lsym } func duintxx(s *types.Sym, off int, v uint64, wid int) int {