blob: 2d646b67860e9a91761c5e4e06102675e40be14b [file] [log] [blame]
Russ Coxd2cc9882012-02-16 23:50:37 -05001// run
Russ Coxbac8f182011-04-26 00:57:03 -04002
3// Copyright 2011 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
Rob Pike83976e32012-02-19 14:28:53 +11007// Test evaluation order in if condition.
8
Russ Coxbac8f182011-04-26 00:57:03 -04009package main
10
11var calledf = false
12
13func f() int {
14 calledf = true
15 return 1
16}
17
18func g() int {
19 if !calledf {
Alan Donovan052c9422013-02-12 13:17:49 -050020 panic("BUG: func7 - called g before f")
Russ Coxbac8f182011-04-26 00:57:03 -040021 }
22 return 0
23}
24
25func main() {
26 // 6g, 8g, 5g all used to evaluate g() before f().
27 if f() < g() {
28 panic("wrong answer")
29 }
30}