aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/devirtualize
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/devirtualize')
-rw-r--r--src/cmd/compile/internal/devirtualize/devirtualize.go6
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: