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 }