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

     1  // RUN: llgo -o %t %s
     2  // RUN: %t 2>&1 | FileCheck %s
     3  
     4  // CHECK: 9223372036854775808 -63 false
     5  // CHECK-NEXT: 11529215046068469760 -60 false
     6  // CHECK-NEXT: 14411518807585587200 -57 false
     7  // CHECK-NEXT: 18014398509481984000 -54 false
     8  // CHECK-NEXT: 11258999068426240000 -50 false
     9  // CHECK-NEXT: 14073748835532800000 -47 false
    10  // CHECK-NEXT: 17592186044416000000 -44 false
    11  // CHECK-NEXT: 10995116277760000000 -40 false
    12  // CHECK-NEXT: 0 0
    13  // CHECK-NEXT: 1 0
    14  // CHECK-NEXT: 2 1
    15  // CHECK-NEXT: 3 0
    16  // CHECK-NEXT: 4 2
    17  // CHECK-NEXT: 5 0
    18  // CHECK-NEXT: 6 3
    19  // CHECK-NEXT: 7 0
    20  // CHECK-NEXT: 8 4
    21  // CHECK-NEXT: 9 0
    22  // CHECK-NEXT: 0 1
    23  // CHECK-NEXT: 1 2
    24  
    25  package main
    26  
    27  // An extFloat represents an extended floating-point number, with more
    28  // precision than a float64. It does not try to save bits: the
    29  // number represented by the structure is mant*(2^exp), with a negative
    30  // sign if neg is true.
    31  type extFloat struct {
    32  	mant uint64
    33  	exp  int
    34  	neg  bool
    35  }
    36  
    37  var smallPowersOfTen = [...]extFloat{
    38  	{1 << 63, -63, false},        // 1
    39  	{0xa << 60, -60, false},      // 1e1
    40  	{0x64 << 57, -57, false},     // 1e2
    41  	{0x3e8 << 54, -54, false},    // 1e3
    42  	{0x2710 << 50, -50, false},   // 1e4
    43  	{0x186a0 << 47, -47, false},  // 1e5
    44  	{0xf4240 << 44, -44, false},  // 1e6
    45  	{0x989680 << 40, -40, false}, // 1e7
    46  }
    47  
    48  var arrayWithHoles = [10]int{
    49  	2: 1,
    50  	4: 2,
    51  	6: 3,
    52  	8: 4,
    53  }
    54  
    55  type namedInt int32
    56  
    57  const N0 namedInt = 0
    58  const N1 namedInt = 1
    59  
    60  var arrayWithNamedIndices = [...]int{
    61  	N0: 1,
    62  	N1: 2,
    63  }
    64  
    65  func main() {
    66  	for i := range smallPowersOfTen {
    67  		s := smallPowersOfTen[i]
    68  		println(s.mant, s.exp, s.neg)
    69  	}
    70  
    71  	for i, value := range arrayWithHoles {
    72  		println(i, value)
    73  	}
    74  
    75  	for i, value := range arrayWithNamedIndices {
    76  		println(i, value)
    77  	}
    78  }