go.tools/go/ssa: add Max to Slice's SSA operand list
LGTM=adonovan
R=adonovan, bradfitz
CC=golang-codereviews
https://golang.org/cl/101160043
diff --git a/go/ssa/interp/testdata/coverage.go b/go/ssa/interp/testdata/coverage.go
index 73fce59..4f7ea77 100644
--- a/go/ssa/interp/testdata/coverage.go
+++ b/go/ssa/interp/testdata/coverage.go
@@ -635,6 +635,13 @@
if got := lenCapLoHi(s[1:3:3]); got != [4]int{2, 2, 1, 2} {
panic(got)
}
+ max := 3
+ if v[2] == 42 {
+ max = 2
+ }
+ if got := lenCapLoHi(s[1:2:max]); got != [4]int{1, 1, 1, 1} {
+ panic(got)
+ }
}
// Regression test for issue 7840 (covered by SSA sanity checker).
diff --git a/go/ssa/ssa.go b/go/ssa/ssa.go
index e68650e..d4d5333 100644
--- a/go/ssa/ssa.go
+++ b/go/ssa/ssa.go
@@ -1655,7 +1655,7 @@
}
func (v *Slice) Operands(rands []*Value) []*Value {
- return append(rands, &v.X, &v.Low, &v.High)
+ return append(rands, &v.X, &v.Low, &v.High, &v.Max)
}
func (s *Store) Operands(rands []*Value) []*Value {