From 6208b10d1e843e49a8cff42ed17f548530fc7452 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Sun, 11 Apr 2021 16:30:36 -0400 Subject: [PATCH] cmd/link: refactor setCgoAttr setCgoAttr takes a lookup function, but there's only a single call and setCgoAttr already has access to the lookup function passed at that call. Simplify setCgoAttr by eliminating the lookup parameter and calling the lookup function directly. For #40724. Change-Id: Ib27c0fa2b88c387e30423365f7757e3ba02cf7d5 Reviewed-on: https://go-review.googlesource.com/c/go/+/309338 Trust: Austin Clements Run-TryBot: Austin Clements Reviewed-by: Cherry Zhang Reviewed-by: Than McIntosh TryBot-Result: Go Bot --- src/cmd/link/internal/ld/go.go | 10 +++++----- src/cmd/link/internal/ld/lib.go | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cmd/link/internal/ld/go.go b/src/cmd/link/internal/ld/go.go index fbc7a78d0ed..8cbdd58b3a3 100644 --- a/src/cmd/link/internal/ld/go.go +++ b/src/cmd/link/internal/ld/go.go @@ -130,7 +130,7 @@ func loadcgo(ctxt *Link, file string, pkg string, p string) { // Set symbol attributes or flags based on cgo directives. // Any newly discovered HOSTOBJ syms are added to 'hostObjSyms'. -func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pkg string, directives [][]string, hostObjSyms map[loader.Sym]struct{}) { +func setCgoAttr(ctxt *Link, file string, pkg string, directives [][]string, hostObjSyms map[loader.Sym]struct{}) { l := ctxt.loader for _, f := range directives { switch f[0] { @@ -173,7 +173,7 @@ func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pk if i := strings.Index(remote, "#"); i >= 0 { remote, q = remote[:i], remote[i+1:] } - s := lookup(local, 0) + s := l.LookupOrCreateSym(local, 0) st := l.SymType(s) if st == 0 || st == sym.SXREF || st == sym.SBSS || st == sym.SNOPTRBSS || st == sym.SHOSTOBJ { l.SetSymDynimplib(s, lib) @@ -199,7 +199,7 @@ func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pk } local := f[1] - s := lookup(local, 0) + s := l.LookupOrCreateSym(local, 0) su := l.MakeSymbolUpdater(s) su.SetType(sym.SHOSTOBJ) su.SetSize(0) @@ -222,7 +222,7 @@ func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pk // functions. Link.loadlib will resolve any // ABI aliases we find here (since we may not // yet know it's an alias). - s := lookup(local, 0) + s := l.LookupOrCreateSym(local, 0) if l.SymType(s) == sym.SHOSTOBJ { hostObjSyms[s] = struct{}{} @@ -230,7 +230,7 @@ func setCgoAttr(ctxt *Link, lookup func(string, int) loader.Sym, file string, pk switch ctxt.BuildMode { case BuildModeCShared, BuildModeCArchive, BuildModePlugin: - if s == lookup("main", 0) { + if s == l.Lookup("main", 0) { continue } } diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 46d238a3181..520d57a72e7 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -681,7 +681,7 @@ func (ctxt *Link) loadcgodirectives() { l := ctxt.loader hostObjSyms := make(map[loader.Sym]struct{}) for _, d := range ctxt.cgodata { - setCgoAttr(ctxt, ctxt.loader.LookupOrCreateSym, d.file, d.pkg, d.directives, hostObjSyms) + setCgoAttr(ctxt, d.file, d.pkg, d.directives, hostObjSyms) } ctxt.cgodata = nil