| // 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: |
| } |
| } |