| // errorcheck | |
| // Copyright 2010 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. | |
| // 6g accepts the program below even though it is syntactically incorrect: | |
| // Each statement in the list of statements for each case clause must be | |
| // terminated with a semicolon. No semicolon is present for the labeled | |
| // statements and because the last token is a colon ":", no semicolon is | |
| // inserted automatically. | |
| // | |
| // Both gccgo and gofmt correctly refuse this program as is and accept it | |
| // when the semicolons are present. | |
| // This is a test case for issue 777 ( https://golang.org/issue/777 ). | |
| package main | |
| func main() { | |
| switch 0 { | |
| case 0: | |
| L0: // ERROR "statement" | |
| case 1: | |
| L1: // ERROR "statement" | |
| default: | |
| // correct since no semicolon is required before a '}' | |
| goto L2 | |
| L2: | |
| } | |
| } |