// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug196

// Copyright 2009 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.

package main

var m = map[int]int{0: 0, 1: 0}
var nf = 0
var i int

func multi() (int, int) { return 1, 2 }

func xxx() {
	var c chan int
	x, ok := <-c

	var m map[int]int
	x, ok = m[1]

	var i interface{}
	var xx int
	xx, ok = i.(int)

	a, b := multi()

	_, _, _, _, _ = x, ok, xx, a, b
}

func f() map[int]int {
	nf++
	return m
}

func g() *int {
	nf++
	return &i
}

func main() {
	f()[0]++
	f()[1] += 2
	*g() %= 2
	if nf != 3 {
		println("too many calls:", nf)
		panic("fail")
	}

}
