blob: e29eb30f544f8bf26e0f69c689dde750a5906cef [file] [log] [blame]
Russ Cox57eb06f2012-02-16 23:51:04 -05001// run
Russ Cox919cb2e2011-09-05 15:31:22 -04002
3// Copyright 2011 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
Rob Pike80a97832012-02-24 11:48:19 +11007// Test zero length structs.
8// Used to not be evaluated.
9// Issue 2232.
Russ Cox919cb2e2011-09-05 15:31:22 -040010
11package main
12
13func recv(c chan interface{}) struct{} {
14 return (<-c).(struct{})
15}
16
17var m = make(map[interface{}]int)
18
19func recv1(c chan interface{}) {
20 defer rec()
21 m[(<-c).(struct{})] = 0
22}
23
24func rec() {
25 recover()
26}
27
28func main() {
29 c := make(chan interface{})
30 go recv(c)
31 c <- struct{}{}
32 go recv1(c)
33 c <- struct{}{}
34}