mirror of
https://github.com/golang/go
synced 2024-10-05 20:31:20 -06:00
[dev.ssa] cmd/compile/internal/ssa: OCHECKNIL is a statement, not an expression
Change-Id: I5a683f532a5a0b2bc862d80c871e8dc6721016fc Reviewed-on: https://go-review.googlesource.com/14534 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
7e390724d2
commit
46ffb026b4
@ -772,6 +772,10 @@ func (s *state) stmt(n *Node) {
|
|||||||
b.AddEdgeTo(bNext)
|
b.AddEdgeTo(bNext)
|
||||||
s.startBlock(bNext)
|
s.startBlock(bNext)
|
||||||
|
|
||||||
|
case OCHECKNIL:
|
||||||
|
p := s.expr(n.Left)
|
||||||
|
s.nilCheck(p)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
s.Unimplementedf("unhandled stmt %s", opnames[n.Op])
|
s.Unimplementedf("unhandled stmt %s", opnames[n.Op])
|
||||||
}
|
}
|
||||||
@ -1661,11 +1665,6 @@ func (s *state) expr(n *Node) *ssa.Value {
|
|||||||
case OADDR:
|
case OADDR:
|
||||||
return s.addr(n.Left)
|
return s.addr(n.Left)
|
||||||
|
|
||||||
case OCHECKNIL:
|
|
||||||
p := s.expr(n.Left)
|
|
||||||
s.nilCheck(p)
|
|
||||||
return p
|
|
||||||
|
|
||||||
case OINDREG:
|
case OINDREG:
|
||||||
if int(n.Reg) != Thearch.REGSP {
|
if int(n.Reg) != Thearch.REGSP {
|
||||||
s.Unimplementedf("OINDREG of non-SP register %s in expr: %v", obj.Rconv(int(n.Reg)), n)
|
s.Unimplementedf("OINDREG of non-SP register %s in expr: %v", obj.Rconv(int(n.Reg)), n)
|
||||||
|
Loading…
Reference in New Issue
Block a user