From: Josh Bleecher Snyder Date: Sun, 6 Sep 2015 02:28:15 +0000 (-0700) Subject: [dev.ssa] cmd/compile: implement OCHECKNIL X-Git-Tag: go1.7beta1~1623^2^2~196 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e22ae879d391e8814b697c79ec7ba2bdc825f25f;p=gostls13.git [dev.ssa] cmd/compile: implement OCHECKNIL Change-Id: Ifb6b2ad6078ad084b73c0e785e748e92139684e2 Reviewed-on: https://go-review.googlesource.com/14338 Reviewed-by: Keith Randall Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index 9a9834f3e1..fef3e61301 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -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)