forked from OSchip/llvm-project
63 lines
727 B
Go
63 lines
727 B
Go
// RUN: llgo -o %t %s
|
|
// RUN: %t 2>&1 | FileCheck %s
|
|
|
|
// CHECK: 1 2
|
|
// CHECK-NEXT: 1 2
|
|
// CHECK-NEXT: 0 1 2
|
|
// CHECK-NEXT: 1 2
|
|
// CHECK-NEXT: 3 4
|
|
|
|
package main
|
|
|
|
type E struct {
|
|
e *E
|
|
}
|
|
|
|
type S struct {
|
|
*E
|
|
a, b int
|
|
}
|
|
|
|
type File struct {
|
|
}
|
|
|
|
type Reader struct {
|
|
}
|
|
|
|
type Response struct {
|
|
}
|
|
|
|
type reader struct {
|
|
*Reader
|
|
fd *File
|
|
resp *Response
|
|
}
|
|
|
|
type Range32 struct {
|
|
Lo uint32
|
|
Hi uint32
|
|
Stride uint32
|
|
}
|
|
|
|
func main() {
|
|
s := &S{nil, 1, 2}
|
|
println(s.a, s.b)
|
|
s = &S{a: 1, b: 2}
|
|
println(s.a, s.b)
|
|
|
|
_ = &reader{}
|
|
|
|
r := Range32{
|
|
Lo: 0,
|
|
Stride: 2,
|
|
Hi: 1,
|
|
}
|
|
println(r.Lo, r.Hi, r.Stride)
|
|
|
|
// slice of structs
|
|
ss := []S{{nil, 1, 2}, {nil, 3, 4}}
|
|
for _, s := range ss {
|
|
println(s.a, s.b)
|
|
}
|
|
}
|