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
9package main
10
11func f() *int {
12	println("BUG: called f")
13	return new(int)
14}
15
16func 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