Home | History | Annotate | Download | only in chan
      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