github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/branching/goto.go (about)

     1  // RUN: llgo -o %t %s
     2  // RUN: %t 2>&1 | FileCheck %s
     3  
     4  // CHECK: 0
     5  // CHECK-NEXT: 1
     6  // CHECK-NEXT: 2
     7  // CHECK-NEXT: 3
     8  // CHECK-NEXT: 4
     9  // CHECK-NEXT: 5
    10  // CHECK-NEXT: 6
    11  // CHECK-NEXT: 7
    12  // CHECK-NEXT: 8
    13  // CHECK-NEXT: 9
    14  // CHECK-NEXT: done
    15  // CHECK-NEXT: !
    16  
    17  package main
    18  
    19  func f1() {
    20  	goto labeled
    21  labeled:
    22  	goto done
    23  	return
    24  done:
    25  	println("!")
    26  }
    27  
    28  func main() {
    29  	i := 0
    30  start:
    31  	if i < 10 {
    32  		println(i)
    33  		i++
    34  		goto start
    35  	} else {
    36  		goto end
    37  	}
    38  	return
    39  end:
    40  	println("done")
    41  	f1()
    42  	return
    43  }