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 }