modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue20029.go (about)

     1  // run
     2  
     3  // Copyright 2017 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  // Issue 20029: make sure we zero at VARKILLs of
     8  // ambiguously live variables.
     9  // The ambiguously live variable here is the hiter
    10  // for the inner range loop.
    11  
    12  package main
    13  
    14  import "runtime"
    15  
    16  func f(m map[int]int) {
    17  outer:
    18  	for i := 0; i < 10; i++ {
    19  		for k := range m {
    20  			if k == 5 {
    21  				continue outer
    22  			}
    23  		}
    24  		runtime.GC()
    25  		break
    26  	}
    27  	runtime.GC()
    28  }
    29  func main() {
    30  	m := map[int]int{1: 2, 2: 3, 3: 4}
    31  	f(m)
    32  }