blob: 45dbb0f03cda68594055f46e1933e49018255cd3 [file] [log] [blame]
Peter Collingbournead9841e2014-11-27 00:06:42 +00001// 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
17package main
18
19import "runtime"
20
21const (
22 a = iota * 2
23 A = 1
24 B
25 C
26 D = Z + iota
27)
28
29const (
30 Z = iota
31 Big = 1<<31 - 1
32 Big2 = -2147483648
33 Big3 = 2147483647
34)
35
36const (
37 expbits32 uint = 8
38 bias32 = -1<<(expbits32-1) + 1
39 darwinAMD64 = runtime.GOOS == "darwin" && runtime.GOARCH == "amd64"
40)
41
42func f1() float32 {
43 return 0
44}
45
46func constArrayLen() {
47 a := [...]int{1, 2, 3}
48 const x = len(a)
49 println(x)
50}
51
52func 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}