...
Run Format

Source file test/label.go

Documentation: test

  // 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 1.
  // Does not compile.
  
  package main
  
  var x int
  
  func f() {
  L1: // ERROR "label .*L1.* defined and not used"
  	for {
  	}
  L2: // ERROR "label .*L2.* defined and not used"
  	select {}
  L3: // ERROR "label .*L3.* defined and not used"
  	switch {
  	}
  L4: // ERROR "label .*L4.* defined and not used"
  	if true {
  	}
  L5: // ERROR "label .*L5.* defined and not used"
  	f()
  L6: // GCCGO_ERROR "previous"
  	f()
  L6: // ERROR "label .*L6.* already defined"
  	f()
  	if x == 20 {
  		goto L6
  	}
  
  L7:
  	for {
  		break L7
  	}
  
  L8:
  	for {
  		if x == 21 {
  			continue L8
  		}
  	}
  
  L9:
  	switch {
  	case true:
  		break L9
  	defalt: // ERROR "label .*defalt.* defined and not used"
  	}
  
  L10:
  	select {
  	default:
  		break L10
  	}
  
  	goto L10
  
  	goto go2 // ERROR "label go2 not defined"
  }
  

View as plain text