From: Josh Bleecher Snyder Date: Fri, 28 Aug 2015 20:35:32 +0000 (-0700) Subject: [dev.ssa] cmd/compile: implement PPARAMREF X-Git-Tag: go1.7beta1~1623^2^2~230 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9654873a76f3234e55951b80f085e86b1ba9d754;p=gostls13.git [dev.ssa] cmd/compile: implement PPARAMREF This also fixes the encoding/gob TestTopLevelNilPointer failure. Change-Id: I9b29a6fddffd51af305c685f3a8e2a0594bfeeab Reviewed-on: https://go-review.googlesource.com/14032 Reviewed-by: Keith Randall --- diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index c00ab59acd..ca9943d81f 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -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)