mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile/internal/devirtualize: do not track assignments to non-PAUTO
We do not lookup/devirtualize such, so we can skip tracking them. Change-Id: I8bdb0b11c694e4b2326c236093508a356a6a6964 Reviewed-on: https://go-review.googlesource.com/c/go/+/711160 Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com>
This commit is contained in:
parent
0ddb5ed465
commit
4dbf1a5a4c
1 changed files with 6 additions and 0 deletions
|
|
@ -387,6 +387,9 @@ func (s *State) assignments(n *ir.Name) []assignment {
|
|||
if fun == nil {
|
||||
base.FatalfAt(n.Pos(), "n.Curfn = <nil>")
|
||||
}
|
||||
if n.Class != ir.PAUTO {
|
||||
base.FatalfAt(n.Pos(), "n.Class = %v; want = PAUTO", n.Class)
|
||||
}
|
||||
|
||||
if !n.Type().IsInterface() {
|
||||
base.FatalfAt(n.Pos(), "name passed to assignments is not of an interface type: %v", n.Type())
|
||||
|
|
@ -432,6 +435,9 @@ func (s *State) analyze(nodes ir.Nodes) {
|
|||
if n.Op() != ir.ONAME {
|
||||
base.FatalfAt(n.Pos(), "n.Op = %v; want = ONAME", n.Op())
|
||||
}
|
||||
if n.Class != ir.PAUTO {
|
||||
return nil, -1
|
||||
}
|
||||
|
||||
switch a := assignment.(type) {
|
||||
case nil:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue