From: Cherry Zhang Date: Mon, 6 Feb 2017 04:41:41 +0000 (-0500) Subject: cmd/compile: fix some types in SSA X-Git-Tag: go1.9beta1~1520 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c4b8dadb4060a8456801ad64c9c5642a737dba19;p=gostls13.git cmd/compile: fix some types in SSA These seem not to really matter, but good to be correct. Change-Id: I02edb9797c3d6739725cfbe4723c75f151acd05e Reviewed-on: https://go-review.googlesource.com/36837 Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot Reviewed-by: Josh Bleecher Snyder --- diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index 78a1f6b48c..7b918cc6d3 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -2205,7 +2205,7 @@ func (s *state) append(n *Node, inplace bool) *ssa.Value { // Tell liveness we're about to build a new slice s.vars[&memVar] = s.newValue1A(ssa.OpVarDef, ssa.TypeMem, sn, s.mem()) } - capaddr := s.newValue1I(ssa.OpOffPtr, pt, int64(array_cap), addr) + capaddr := s.newValue1I(ssa.OpOffPtr, ptrto(Types[TINT]), int64(array_cap), addr) s.vars[&memVar] = s.newValue3I(ssa.OpStore, ssa.TypeMem, s.config.IntSize, capaddr, r[2], s.mem()) if ssa.IsStackAddr(addr) { s.vars[&memVar] = s.newValue3I(ssa.OpStore, ssa.TypeMem, pt.Size(), addr, r[0], s.mem()) @@ -2230,7 +2230,7 @@ func (s *state) append(n *Node, inplace bool) *ssa.Value { if inplace { l = s.variable(&lenVar, Types[TINT]) // generates phi for len nl = s.newValue2(s.ssaOp(OADD, Types[TINT]), Types[TINT], l, s.constInt(Types[TINT], nargs)) - lenaddr := s.newValue1I(ssa.OpOffPtr, pt, int64(array_nel), addr) + lenaddr := s.newValue1I(ssa.OpOffPtr, ptrto(Types[TINT]), int64(array_nel), addr) s.vars[&memVar] = s.newValue3I(ssa.OpStore, ssa.TypeMem, s.config.IntSize, lenaddr, nl, s.mem()) } @@ -3520,7 +3520,7 @@ func (s *state) storeTypePtrs(t *Type, left, right *ssa.Value) { case t.IsInterface(): // itab field is treated as a scalar. idata := s.newValue1(ssa.OpIData, ptrto(Types[TUINT8]), right) - idataAddr := s.newValue1I(ssa.OpOffPtr, ptrto(Types[TUINT8]), s.config.PtrSize, left) + idataAddr := s.newValue1I(ssa.OpOffPtr, ptrto(ptrto(Types[TUINT8])), s.config.PtrSize, left) s.vars[&memVar] = s.newValue3I(ssa.OpStore, ssa.TypeMem, s.config.PtrSize, idataAddr, idata, s.mem()) case t.IsStruct(): n := t.NumFields() @@ -3556,7 +3556,7 @@ func (s *state) storeTypePtrsWB(t *Type, left, right *ssa.Value) { case t.IsInterface(): // itab field is treated as a scalar. idata := s.newValue1(ssa.OpIData, ptrto(Types[TUINT8]), right) - idataAddr := s.newValue1I(ssa.OpOffPtr, ptrto(Types[TUINT8]), s.config.PtrSize, left) + idataAddr := s.newValue1I(ssa.OpOffPtr, ptrto(ptrto(Types[TUINT8])), s.config.PtrSize, left) s.vars[&memVar] = s.newValue3I(ssa.OpStoreWB, ssa.TypeMem, s.config.PtrSize, idataAddr, idata, s.mem()) case t.IsStruct(): n := t.NumFields()