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

     1  // RUN: llgo -o %t %s
     2  // RUN: %t 2>&1 | FileCheck %s
     3  
     4  // CHECK: 3
     5  // CHECK-NEXT: 4
     6  
     7  package main
     8  
     9  type T1 *T1
    10  
    11  func count(t T1) int {
    12  	if t == nil {
    13  		return 1
    14  	}
    15  	return 1 + count(*t)
    16  }
    17  
    18  func testSelfPointer() {
    19  	var a T1
    20  	var b T1
    21  	var c T1 = &b
    22  	*c = &a
    23  	println(count(c))
    24  	println(count(&c))
    25  }
    26  
    27  func main() {
    28  	testSelfPointer()
    29  }