OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [fixedbugs/] [bug243.go] - Rev 700

Compare with Previous | Blame | View Log

// $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.

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, ""
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.