gc: fix closure bug

Fixes #2056.

R=rsc
CC=golang-dev
https://golang.org/cl/4709042
This commit is contained in:
Luuk van Dijk 2011-07-14 18:13:39 +02:00
parent cbad580e9c
commit e8ff9a624f
3 changed files with 61 additions and 38 deletions

19
test/fixedbugs/bug346.go Normal file
View file

@ -0,0 +1,19 @@
// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: issue2056
// Copyright 2011 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
import "os"
func main() {
x := 4
a, b, c, d := func(i int) (p int, q int, r int, s int) { return 1, i, 3, x }(2)
if a != 1 || b != 2 || c != 3 || d != 4 {
println("abcd: expected 1 2 3 4 got", a, b, c, d)
os.Exit(1)
}
}