mirror of
https://github.com/golang/go
synced 2024-10-05 21:21:21 -06:00
[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 <khr@golang.org>
This commit is contained in:
parent
47d6799b0f
commit
9654873a76
@ -1800,7 +1800,7 @@ func (s *state) addr(n *Node) *ssa.Value {
|
|||||||
s.Fatalf("addr of undeclared ONAME %v. declared: %v", n, s.decladdrs)
|
s.Fatalf("addr of undeclared ONAME %v. declared: %v", n, s.decladdrs)
|
||||||
}
|
}
|
||||||
return v
|
return v
|
||||||
case PAUTO | PHEAP:
|
case PAUTO | PHEAP, PPARAMREF:
|
||||||
return s.expr(n.Name.Heapaddr)
|
return s.expr(n.Name.Heapaddr)
|
||||||
default:
|
default:
|
||||||
s.Unimplementedf("variable address class %v not implemented", n.Class)
|
s.Unimplementedf("variable address class %v not implemented", n.Class)
|
||||||
@ -1864,10 +1864,8 @@ func canSSA(n *Node) bool {
|
|||||||
if n.Class&PHEAP != 0 {
|
if n.Class&PHEAP != 0 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if n.Class == PEXTERN {
|
switch n.Class {
|
||||||
return false
|
case PEXTERN, PPARAMOUT, PPARAMREF:
|
||||||
}
|
|
||||||
if n.Class == PPARAMOUT {
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return canSSAType(n.Type)
|
return canSSAType(n.Type)
|
||||||
|
Loading…
Reference in New Issue
Block a user