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

     1  // RUN: llgo -o %t %s
     2  // RUN: %t 2>&1 | FileCheck %s
     3  
     4  // CHECK: 1 2
     5  // CHECK-NEXT: 1 2
     6  // CHECK-NEXT: 0 1 2
     7  // CHECK-NEXT: 1 2
     8  // CHECK-NEXT: 3 4
     9  
    10  package main
    11  
    12  type E struct {
    13  	e *E
    14  }
    15  
    16  type S struct {
    17  	*E
    18  	a, b int
    19  }
    20  
    21  type File struct {
    22  }
    23  
    24  type Reader struct {
    25  }
    26  
    27  type Response struct {
    28  }
    29  
    30  type reader struct {
    31  	*Reader
    32  	fd   *File
    33  	resp *Response
    34  }
    35  
    36  type Range32 struct {
    37  	Lo     uint32
    38  	Hi     uint32
    39  	Stride uint32
    40  }
    41  
    42  func main() {
    43  	s := &S{nil, 1, 2}
    44  	println(s.a, s.b)
    45  	s = &S{a: 1, b: 2}
    46  	println(s.a, s.b)
    47  
    48  	_ = &reader{}
    49  
    50  	r := Range32{
    51  		Lo:     0,
    52  		Stride: 2,
    53  		Hi:     1,
    54  	}
    55  	println(r.Lo, r.Hi, r.Stride)
    56  
    57  	// slice of structs
    58  	ss := []S{{nil, 1, 2}, {nil, 3, 4}}
    59  	for _, s := range ss {
    60  		println(s.a, s.b)
    61  	}
    62  }