// compile | |
// Copyright 2017 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 gotos across non-variable declarations | |
// are accepted. | |
package p | |
func _() { | |
goto L1 | |
const x = 0 | |
L1: | |
goto L2 | |
type T int | |
L2: | |
} | |
func _() { | |
{ | |
goto L1 | |
} | |
const x = 0 | |
L1: | |
{ | |
goto L2 | |
} | |
type T int | |
L2: | |
} | |
func _(d int) { | |
if d > 0 { | |
goto L1 | |
} else { | |
goto L2 | |
} | |
const x = 0 | |
L1: | |
switch d { | |
case 1: | |
goto L3 | |
case 2: | |
default: | |
goto L4 | |
} | |
type T1 int | |
L2: | |
const y = 1 | |
L3: | |
for d > 0 { | |
if d < 10 { | |
goto L4 | |
} | |
} | |
type T2 int | |
L4: | |
select { | |
default: | |
goto L5 | |
} | |
type T3 int | |
L5: | |
} |