github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/const.go (about) 1 // RUN: llgo -o %t %s 2 // RUN: %t 2>&1 | FileCheck %s 3 4 // CHECK: 0 5 // CHECK-NEXT: 1 6 // CHECK-NEXT: 1 1 7 // CHECK-NEXT: 1 1 1 4 8 // CHECK-NEXT: 2147483647 9 // CHECK-NEXT: -2147483648 10 // CHECK-NEXT: 2147483647 11 // CHECK-NEXT: -127 12 // CHECK-NEXT: false 13 // CHECK-NEXT: 10000000000 14 // CHECK-NEXT: 1 15 // CHECK-NEXT: 3 16 17 package main 18 19 import "runtime" 20 21 const ( 22 a = iota * 2 23 A = 1 24 B 25 C 26 D = Z + iota 27 ) 28 29 const ( 30 Z = iota 31 Big = 1<<31 - 1 32 Big2 = -2147483648 33 Big3 = 2147483647 34 ) 35 36 const ( 37 expbits32 uint = 8 38 bias32 = -1<<(expbits32-1) + 1 39 darwinAMD64 = runtime.GOOS == "darwin" && runtime.GOARCH == "amd64" 40 ) 41 42 func f1() float32 { 43 return 0 44 } 45 46 func constArrayLen() { 47 a := [...]int{1, 2, 3} 48 const x = len(a) 49 println(x) 50 } 51 52 func main() { 53 println(a) 54 println(B) 55 println(A, A) 56 println(A, B, C, D) 57 println(Big) 58 println(Big2) 59 println(Big3) 60 println(bias32) 61 62 // Currently fails, due to difference in C printf and Go's println 63 // formatting of the exponent. 64 //println(10 * 1e9) 65 println(darwinAMD64) 66 67 // Test conversion. 68 println(int64(10) * 1e9) 69 70 // Ensure consts work just as well when declared inside a function. 71 const ( 72 x_ = iota 73 y_ 74 ) 75 println(y_) 76 77 constArrayLen() 78 }