mirror of
https://github.com/golang/go
synced 2024-11-19 12:34:47 -07:00
54 lines
733 B
Go
54 lines
733 B
Go
|
// compile
|
||
|
|
||
|
// Copyright 2014 The Go Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
// /tmp/x.go:3: internal error: f &p (type *int) recorded as live on entry
|
||
|
|
||
|
package p
|
||
|
|
||
|
func f(ch chan int) *int {
|
||
|
select {
|
||
|
case p1x := <-ch:
|
||
|
return &p1x
|
||
|
default:
|
||
|
// ok
|
||
|
}
|
||
|
select {
|
||
|
case p1 := <-ch:
|
||
|
return &p1
|
||
|
default:
|
||
|
// ok
|
||
|
}
|
||
|
select {
|
||
|
case p2 := <-ch:
|
||
|
return &p2
|
||
|
case p3 := <-ch:
|
||
|
return &p3
|
||
|
default:
|
||
|
// ok
|
||
|
}
|
||
|
select {
|
||
|
case p4, ok := <-ch:
|
||
|
if ok {
|
||
|
return &p4
|
||
|
}
|
||
|
default:
|
||
|
// ok
|
||
|
}
|
||
|
select {
|
||
|
case p5, ok := <-ch:
|
||
|
if ok {
|
||
|
return &p5
|
||
|
}
|
||
|
case p6, ok := <-ch:
|
||
|
if !ok {
|
||
|
return &p6
|
||
|
}
|
||
|
default:
|
||
|
// ok
|
||
|
}
|
||
|
return nil
|
||
|
}
|