modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue15585.go (about) 1 // compile 2 3 // Copyright 2016 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package bug 8 9 func example(n int) (rc int) { 10 var cc, ll, pp, rr [27]int 11 for q0 := 0; q0 < n-2; q0++ { 12 for q1 := q0 + 2; q1 < n; q1++ { 13 var c, d, l, p, r int 14 b0 := 1 << uint(q0) 15 b1 := 1 << uint(q1) 16 l = ((b0 << 1) | b1) << 1 17 c = b0 | b1 | (-1 << uint(n)) 18 r = ((b0 >> 1) | b1) >> 1 19 E: 20 if c != -1 { 21 p = ^(l | c | r) 22 } else { 23 rc++ 24 goto R 25 } 26 L: 27 if p != 0 { 28 lsb := p & -p 29 p &^= lsb 30 ll[d], cc[d], rr[d], pp[d] = l, c, r, p 31 l, c, r = (l|lsb)<<1, c|lsb, (r|lsb)>>1 32 d++ 33 goto E 34 } 35 R: 36 d-- 37 if d >= 0 { 38 l, c, r, p = ll[d], cc[d], rr[d], pp[d] 39 goto L 40 } 41 } 42 } 43 rc <<= 1 44 return 45 }