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