1// run 2 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 7// Test zero length structs. 8// Used to not be evaluated. 9// Issue 2232. 10 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} 35