aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Neal <todd@tneal.org>2015-07-13 21:22:16 -0500
committerJosh Bleecher Snyder <josharian@gmail.com>2015-07-15 03:24:05 +0000
commitb383de2ef9d08882c331b4877ce9d5a69f8f97b2 (patch)
tree73b6fc5ec3fb5c059f9c1c4103a09296f470e5ce
parent4e204b42f5b66ea36f0421098a42addc7c2ba6c7 (diff)
downloadgo-b383de2ef9d08882c331b4877ce9d5a69f8f97b2.tar.xz
[dev.ssa] cmd/compile: implement OIND
Change-Id: I15aee8095e6388822e2222f1995fe2278ac956ca Reviewed-on: https://go-review.googlesource.com/12129 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-rw-r--r--src/cmd/compile/internal/gc/ssa.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go
index b016bb1838..3ad21a6193 100644
--- a/src/cmd/compile/internal/gc/ssa.go
+++ b/src/cmd/compile/internal/gc/ssa.go
@@ -719,6 +719,10 @@ func (s *state) addr(n *Node) *ssa.Value {
s.boundsCheck(i, len)
return s.newValue2(ssa.OpPtrIndex, Ptrto(n.Left.Type.Type), a, i)
}
+ case OIND:
+ p := s.expr(n.Left)
+ s.nilCheck(p)
+ return p
case ODOT:
p := s.addr(n.Left)
return s.newValue2(ssa.OpAdd, p.Type, p, s.constInt(s.config.Uintptr, n.Xoffset))