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

Subversion Repositories openrisc

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

Compare with Previous | Blame | View Log

// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug159

// Copyright 2009 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() {
        ok := true;
        var a, b, c, x, y, z int;
        f := func() int { b--; return -b };

        // this fails on 6g: apparently it rewrites
        // the list into
        //      z = f();
        //      y = f();
        //      x = f();
        // so that the values come out backward.
        x, y, z = f(), f(), f();
        if x != 1 || y != 2 || z != 3 {
                println("xyz: expected 1 2 3 got", x, y, z);
                ok = false;
        }

        // this fails on 6g too.  one of the function calls
        // happens after assigning to b.
        a, b, c = f(), f(), f();
        if a != 4 || b != 5 || c != 6 {
                println("abc: expected 4 5 6 got", a, b, c);
                ok = false;
        }

        if !ok {
                os.Exit(1);
        }
}

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.