mirror of https://github.com/golang/go.git
cmd/compile/internal/pkginit: remove dependency on typecheck.Resolve
The use of typecheck.Resolve was previously necessary to interoperate with the non-unified frontend, because it hooked into iimport. It's no longer necessary with unified IR, where we can just lookup the ".inittask" symbol and access Def directly. Updates #57410. Change-Id: I73bdfd53f65988ececd2b777743cd8b591a6db48 Reviewed-on: https://go-review.googlesource.com/c/go/+/458616 Auto-Submit: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
4a0e84a1be
commit
6d4101ea68
|
|
@ -75,14 +75,14 @@ func Task() *ir.Name {
|
|||
|
||||
// Find imported packages with init tasks.
|
||||
for _, pkg := range typecheck.Target.Imports {
|
||||
n := typecheck.Resolve(ir.NewIdent(base.Pos, pkg.Lookup(".inittask")))
|
||||
if n.Op() == ir.ONONAME {
|
||||
n, ok := pkg.Lookup(".inittask").Def.(*ir.Name)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
if n.Op() != ir.ONAME || n.(*ir.Name).Class != ir.PEXTERN {
|
||||
if n.Op() != ir.ONAME || n.Class != ir.PEXTERN {
|
||||
base.Fatalf("bad inittask: %v", n)
|
||||
}
|
||||
deps = append(deps, n.(*ir.Name).Linksym())
|
||||
deps = append(deps, n.Linksym())
|
||||
}
|
||||
if base.Flag.ASan {
|
||||
// Make an initialization function to call runtime.asanregisterglobals to register an
|
||||
|
|
|
|||
Loading…
Reference in New Issue