Source file test/chan/select4.go
1 // run 2 3 // Copyright 2010 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 that a select statement proceeds when a value is ready. 8 9 package main 10 11 func f() *int { 12 println("BUG: called f") 13 return new(int) 14 } 15 16 func main() { 17 var x struct { 18 a int 19 } 20 c := make(chan int, 1) 21 c1 := make(chan int) 22 c <- 42 23 select { 24 case *f() = <-c1: 25 // nothing 26 case x.a = <-c: 27 if x.a != 42 { 28 println("BUG:", x.a) 29 } 30 } 31 } 32