]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile: implement PPARAMREF
authorJosh Bleecher Snyder <josharian@gmail.com>
Fri, 28 Aug 2015 20:35:32 +0000 (13:35 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Sat, 29 Aug 2015 16:33:14 +0000 (16:33 +0000)
This also fixes the encoding/gob TestTopLevelNilPointer failure.

Change-Id: I9b29a6fddffd51af305c685f3a8e2a0594bfeeab
Reviewed-on: https://go-review.googlesource.com/14032
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/ssa.go

index c00ab59acda452efc91e3e0fbd2fae24aa9eb6ad..ca9943d81fc7b47aad850eb9f20bea5eebb1ade4 100644 (file)
@@ -1800,7 +1800,7 @@ func (s *state) addr(n *Node) *ssa.Value {
                                s.Fatalf("addr of undeclared ONAME %v. declared: %v", n, s.decladdrs)
                        }
                        return v
-               case PAUTO | PHEAP:
+               case PAUTO | PHEAP, PPARAMREF:
                        return s.expr(n.Name.Heapaddr)
                default:
                        s.Unimplementedf("variable address class %v not implemented", n.Class)
@@ -1864,10 +1864,8 @@ func canSSA(n *Node) bool {
        if n.Class&PHEAP != 0 {
                return false
        }
-       if n.Class == PEXTERN {
-               return false
-       }
-       if n.Class == PPARAMOUT {
+       switch n.Class {
+       case PEXTERN, PPARAMOUT, PPARAMREF:
                return false
        }
        return canSSAType(n.Type)