// compile

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

// The gccgo compiler had a bug: mentioning a function type in an
// expression in a function literal messed up the list of variables
// referenced in enclosing functions.

package main

func main() {
	v1, v2 := 0, 0
	f := func() {
		a := v1
		g := (func())(nil)
		b := v2
		_, _, _ = a, g, b
	}
	_, _, _ = v1, v2, f
}
