--- /dev/null
+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() {}