2 // errorcheck -0 -d=ssa/prove/debug=3
8 a[0] = 1 // ERROR "Proved IsInBounds$"
10 a[6] = 1 // ERROR "Proved IsInBounds$"
12 a[5] = 1 // ERROR "Proved IsInBounds$"
16 func f1(a []int) int {
21 a[0] = 1 // ERROR "Proved IsInBounds$"
23 a[6] = 1 // ERROR "Proved IsInBounds$"
24 a[5] = 1 // ERROR "Proved constant IsInBounds$"
25 a[5] = 1 // ERROR "Proved IsInBounds$"
29 func f2(a []int) int {
32 a[i] = i // ERROR "Proved IsInBounds$"
37 func f3(a []uint) int {
38 for i := uint(0); i < uint(len(a)); i++ {
39 a[i] = i // ERROR "Proved IsInBounds$"
44 func f4a(a, b, c int) int {
46 if a == b { // ERROR "Disproved Eq64$"
49 if a > b { // ERROR "Disproved Greater64$"
52 if a < b { // ERROR "Proved Less64$"
55 if a == b { // ERROR "Disproved Eq64$"
66 func f4b(a, b, c int) int {
69 if a == b { // ERROR "Proved Eq64$"
79 func f4c(a, b, c int) int {
82 if a != b { // ERROR "Disproved Neq64$"
92 func f4d(a, b, c int) int {
95 if a < b { // ERROR "Proved Less64$"
96 if a < c { // ERROR "Proved Less64$"
108 func f4e(a, b, c int) int {
110 if b > a { // ERROR "Proved Greater64$"
118 func f4f(a, b, c int) int {
121 if b == a { // ERROR "Disproved Eq64$"
126 if b >= a { // ERROR "Proved Geq64$"
127 if b == a { // ERROR "Proved Eq64$"
137 func f5(a, b uint) int {
139 if a <= b { // ERROR "Proved Leq64U$"
147 // These comparisons are compile time constants.
148 func f6a(a uint8) int {
149 if a < a { // ERROR "Disproved Less8U$"
155 func f6b(a uint8) int {
156 if a < a { // ERROR "Disproved Less8U$"
162 func f6x(a uint8) int {
163 if a > a { // ERROR "Disproved Greater8U$"
169 func f6d(a uint8) int {
170 if a <= a { // ERROR "Proved Leq8U$"
176 func f6e(a uint8) int {
177 if a >= a { // ERROR "Proved Geq8U$"
183 func f7(a []int, b int) int {
186 if b < len(a) { // ERROR "Proved Less64$"
187 a[b] = 5 // ERROR "Proved IsInBounds$"
193 func f8(a, b uint) int {
200 if a < b { // ERROR "Proved Less64U$"