79 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
| // 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()
 | |
| }
 |