]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile: implement OCHECKNIL
authorJosh Bleecher Snyder <josharian@gmail.com>
Sun, 6 Sep 2015 02:28:15 +0000 (19:28 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Mon, 7 Sep 2015 01:54:16 +0000 (01:54 +0000)
Change-Id: Ifb6b2ad6078ad084b73c0e785e748e92139684e2
Reviewed-on: https://go-review.googlesource.com/14338
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/gc/ssa.go

index 9a9834f3e1730b4d604e2bf31b6a7ff656ad5a0c..fef3e61301ad80d8d97db20b9727aae6a34c1b72 100644 (file)
@@ -1621,6 +1621,11 @@ func (s *state) expr(n *Node) *ssa.Value {
        case OADDR:
                return s.addr(n.Left)
 
+       case OCHECKNIL:
+               p := s.expr(n.Left)
+               s.nilCheck(p)
+               return p
+
        case OINDREG:
                if int(n.Reg) != Thearch.REGSP {
                        s.Unimplementedf("OINDREG of non-SP register %s in expr: %v", obj.Rconv(int(n.Reg)), n)