diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/go.test/test/label1.go')
-rw-r--r-- | gcc-4.9/gcc/testsuite/go.test/test/label1.go | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/go.test/test/label1.go b/gcc-4.9/gcc/testsuite/go.test/test/label1.go new file mode 100644 index 000000000..f923a1882 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/go.test/test/label1.go @@ -0,0 +1,88 @@ +// errorcheck + +// Copyright 2011 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. + + +// Verify that erroneous labels are caught by the compiler. +// This set is caught by pass 2. That's why this file is label1.go. +// Does not compile. + +package main + +var x int + +func f() { +L1: + for { + if x == 0 { + break L1 + } + if x == 1 { + continue L1 + } + goto L1 + } + +L2: + select { + default: + if x == 0 { + break L2 + } + if x == 1 { + continue L2 // ERROR "invalid continue label .*L2" + } + goto L2 + } + +L3: + switch { + case x > 10: + if x == 11 { + break L3 + } + if x == 12 { + continue L3 // ERROR "invalid continue label .*L3" + } + goto L3 + } + +L4: + if true { + if x == 13 { + break L4 // ERROR "invalid break label .*L4" + } + if x == 14 { + continue L4 // ERROR "invalid continue label .*L4" + } + if x == 15 { + goto L4 + } + } + +L5: + f() + if x == 16 { + break L5 // ERROR "invalid break label .*L5" + } + if x == 17 { + continue L5 // ERROR "invalid continue label .*L5" + } + if x == 18 { + goto L5 + } + + for { + if x == 19 { + break L1 // ERROR "invalid break label .*L1" + } + if x == 20 { + continue L1 // ERROR "invalid continue label .*L1" + } + if x == 21 { + goto L1 + } + } +} |