modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue4618.go (about) 1 // run 2 3 // Copyright 2013 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 main 8 9 import ( 10 "fmt" 11 "os" 12 "runtime" 13 "testing" 14 ) 15 16 type T struct { int } 17 18 var globl *T 19 20 func F() { 21 t := &T{} 22 globl = t 23 } 24 25 func G() { 26 t := &T{} 27 _ = t 28 } 29 30 func main() { 31 nf := testing.AllocsPerRun(100, F) 32 ng := testing.AllocsPerRun(100, G) 33 if int(nf) > 1 { 34 fmt.Printf("AllocsPerRun(100, F) = %v, want 1\n", nf) 35 os.Exit(1) 36 } 37 if int(ng) != 0 && (runtime.Compiler != "gccgo" || int(ng) != 1) { 38 fmt.Printf("AllocsPerRun(100, G) = %v, want 0\n", ng) 39 os.Exit(1) 40 } 41 }