1// run 2 3// Copyright 2011 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// Test the run-time behavior of escape analysis-related optimizations. 8 9package main 10 11func main() { 12 test1() 13} 14 15func test1() { 16 check1(0) 17 check1(1) 18 check1(2) 19} 20 21type T1 struct { 22 X, Y, Z int 23} 24 25func f() int { 26 return 1 27} 28 29func check1(pass int) T1 { 30 v := []T1{{X: f(), Z: f()}} 31 if v[0].Y != 0 { 32 panic("nonzero init") 33 } 34 v[0].Y = pass 35 return v[0] 36} 37