// $G $D/$F.go && $L $F.$A && ./$A.out

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

// http://code.google.com/p/go/issues/detail?id=846

package main

func x() (a int, b bool) {
	defer func(){
		a++
	}()
	a, b = y()
	return
}

func x2() (a int, b bool) {
	defer func(){
		a++
	}()
	return y()
}

func y() (int, bool) {
	return 4, false
}

func main() {
	if a, _ := x(); a != 5 {
		println("BUG", a)
	}
	if a, _ := x2(); a != 5 {
		println("BUG", a)
	}
}
