blob: 890900600f43c57c015d67727e42897a6ccb08f7 [file] [log] [blame]
Russ Cox2b1c9b42012-02-16 23:49:30 -05001// run
Russ Cox39b12e22009-08-07 14:38:31 -07002
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
7package main
8
Rob Pike325cf8e2010-03-24 16:46:53 -07009func g() {}
Russ Cox39b12e22009-08-07 14:38:31 -070010
11func f1() (a, b int) {
Rob Pike325cf8e2010-03-24 16:46:53 -070012 a, b = 2, 1
13 g() // defeat optimizer
14 return a, b
Russ Cox39b12e22009-08-07 14:38:31 -070015}
16
17func f2() (a, b int) {
Rob Pike325cf8e2010-03-24 16:46:53 -070018 a, b = 1, 2
19 g() // defeat optimizer
20 return b, a
Russ Cox39b12e22009-08-07 14:38:31 -070021}
22
23func main() {
Rob Pike325cf8e2010-03-24 16:46:53 -070024 x, y := f1()
Russ Cox39b12e22009-08-07 14:38:31 -070025 if x != 2 || y != 1 {
Rob Pike325cf8e2010-03-24 16:46:53 -070026 println("f1", x, y)
27 panic("fail")
Russ Cox39b12e22009-08-07 14:38:31 -070028 }
29
Rob Pike325cf8e2010-03-24 16:46:53 -070030 x, y = f2()
Russ Cox39b12e22009-08-07 14:38:31 -070031 if x != 2 || y != 1 {
Rob Pike325cf8e2010-03-24 16:46:53 -070032 println("f2", x, y)
33 panic("fail")
Russ Cox39b12e22009-08-07 14:38:31 -070034 }
35}