From adc80c0665c0aa9a4a504e5c5dd2ddf981d3a8c3 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Thu, 13 Apr 2017 06:31:05 -0700 Subject: [PATCH] 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 --- src/cmd/compile/internal/gc/obj.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) 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 { -- 2.48.1