59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package main
|
|
|
|
// Static tests of SSA builder (via the sanity checker).
|
|
// Dynamic semantics are not exercised.
|
|
|
|
func init() {
|
|
// Regression test for issue 6806.
|
|
ch := make(chan int)
|
|
select {
|
|
case n, _ := <-ch:
|
|
_ = n
|
|
default:
|
|
// The default case disables the simplification of
|
|
// select to a simple receive statement.
|
|
}
|
|
|
|
// value,ok-form receive where TypeOf(ok) is a named boolean.
|
|
type mybool bool
|
|
var x int
|
|
var y mybool
|
|
select {
|
|
case x, y = <-ch:
|
|
default:
|
|
// The default case disables the simplification of
|
|
// select to a simple receive statement.
|
|
}
|
|
_ = x
|
|
_ = y
|
|
}
|
|
|
|
var a int
|
|
|
|
// Regression test for issue 7840 (covered by SSA sanity checker).
|
|
func bug7840() bool {
|
|
// This creates a single-predecessor block with a φ-node.
|
|
return false && a == 0 && a == 0
|
|
}
|
|
|
|
// A blocking select (sans "default:") cannot fall through.
|
|
// Regression test for issue 7022.
|
|
func bug7022() int {
|
|
var c1, c2 chan int
|
|
select {
|
|
case <-c1:
|
|
return 123
|
|
case <-c2:
|
|
return 456
|
|
}
|
|
}
|
|
|
|
// Parens should not prevent intrinsic treatment of built-ins.
|
|
// (Regression test for a crash.)
|
|
func init() {
|
|
_ = (new)(int)
|
|
_ = (make)([]int, 0)
|
|
}
|
|
|
|
func main() {}
|