aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug243.go
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug243.go')
-rw-r--r--gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug243.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug243.go b/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug243.go
new file mode 100644
index 000000000..4870c3614
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/go.test/test/fixedbugs/bug243.go
@@ -0,0 +1,51 @@
+// run
+
+// 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.
+
+package main
+
+import "errors"
+
+// Issue 481: closures and var declarations
+// with multiple variables assigned from one
+// function call.
+
+func main() {
+ var listen, _ = Listen("tcp", "127.0.0.1:0")
+
+ go func() {
+ for {
+ var conn, _ = listen.Accept()
+ _ = conn
+ }
+ }()
+
+ var conn, _ = Dial("tcp", "", listen.Addr().Error())
+ _ = conn
+}
+
+// Simulated net interface to exercise bug
+// without involving a real network.
+type T chan int
+
+var global T
+
+func Listen(x, y string) (T, string) {
+ global = make(chan int)
+ return global, y
+}
+
+func (t T) Addr() error {
+ return errors.New("stringer")
+}
+
+func (t T) Accept() (int, string) {
+ return <-t, ""
+}
+
+func Dial(x, y, z string) (int, string) {
+ global <- 1
+ return 0, ""
+}