| // RUN: llgo -o %t %s |
| // RUN: %t 2>&1 | FileCheck %s |
| |
| // CHECK: 0 |
| // CHECK-NEXT: 1 |
| // CHECK-NEXT: 1 1 |
| // CHECK-NEXT: 1 1 1 4 |
| // CHECK-NEXT: 2147483647 |
| // CHECK-NEXT: -2147483648 |
| // CHECK-NEXT: 2147483647 |
| // CHECK-NEXT: -127 |
| // CHECK-NEXT: false |
| // CHECK-NEXT: 10000000000 |
| // CHECK-NEXT: 1 |
| // CHECK-NEXT: 3 |
| |
| package main |
| |
| import "runtime" |
| |
| const ( |
| a = iota * 2 |
| A = 1 |
| B |
| C |
| D = Z + iota |
| ) |
| |
| const ( |
| Z = iota |
| Big = 1<<31 - 1 |
| Big2 = -2147483648 |
| Big3 = 2147483647 |
| ) |
| |
| const ( |
| expbits32 uint = 8 |
| bias32 = -1<<(expbits32-1) + 1 |
| darwinAMD64 = runtime.GOOS == "darwin" && runtime.GOARCH == "amd64" |
| ) |
| |
| func f1() float32 { |
| return 0 |
| } |
| |
| func constArrayLen() { |
| a := [...]int{1, 2, 3} |
| const x = len(a) |
| println(x) |
| } |
| |
| func main() { |
| println(a) |
| println(B) |
| println(A, A) |
| println(A, B, C, D) |
| println(Big) |
| println(Big2) |
| println(Big3) |
| println(bias32) |
| |
| // Currently fails, due to difference in C printf and Go's println |
| // formatting of the exponent. |
| //println(10 * 1e9) |
| println(darwinAMD64) |
| |
| // Test conversion. |
| println(int64(10) * 1e9) |
| |
| // Ensure consts work just as well when declared inside a function. |
| const ( |
| x_ = iota |
| y_ |
| ) |
| println(y_) |
| |
| constArrayLen() |
| } |