mirror of
https://github.com/golang/go
synced 2024-11-13 18:30:26 -07:00
09cb91eddc
The test array is too large to fit a stack frame but can be a global. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7127059
30 lines
529 B
Go
30 lines
529 B
Go
// compile
|
|
|
|
// Copyright 2012 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Issue 4348. After switch to 64-bit ints the compiler generates
|
|
// illegal instructions when using large array bounds or indexes.
|
|
|
|
package main
|
|
|
|
// 1<<32 on a 64-bit machine, 1 otherwise.
|
|
const LARGE = ^uint(0)>>32 + 1
|
|
|
|
func A() int {
|
|
var a []int
|
|
return a[LARGE]
|
|
}
|
|
|
|
var b [LARGE]int
|
|
|
|
func B(i int) int {
|
|
return b[i]
|
|
}
|
|
|
|
func main() {
|
|
n := A()
|
|
B(n)
|
|
}
|