diff options
Diffstat (limited to 'src/cmd/compile/internal/devirtualize')
| -rw-r--r-- | src/cmd/compile/internal/devirtualize/devirtualize.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/devirtualize/devirtualize.go b/src/cmd/compile/internal/devirtualize/devirtualize.go index dfcdd42236..cb4608a024 100644 --- a/src/cmd/compile/internal/devirtualize/devirtualize.go +++ b/src/cmd/compile/internal/devirtualize/devirtualize.go @@ -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: |
