github.com/zach-klippenstein/go@v0.0.0-20150108044943-fcfbeb3adf58/test/fixedbugs/bug185.go (about)

     1  // run
     2  
     3  // Copyright 2009 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  package main
     8  
     9  func g() {}
    10  
    11  func f1() (a, b int) {
    12  	a, b = 2, 1
    13  	g() // defeat optimizer
    14  	return a, b
    15  }
    16  
    17  func f2() (a, b int) {
    18  	a, b = 1, 2
    19  	g() // defeat optimizer
    20  	return b, a
    21  }
    22  
    23  func main() {
    24  	x, y := f1()
    25  	if x != 2 || y != 1 {
    26  		println("f1", x, y)
    27  		panic("fail")
    28  	}
    29  
    30  	x, y = f2()
    31  	if x != 2 || y != 1 {
    32  		println("f2", x, y)
    33  		panic("fail")
    34  	}
    35  }