mirror of
https://github.com/golang/go
synced 2024-11-20 07:04:40 -07:00
1e233ad075
A check for smallintconst was missing before generating the comparisons. Fixes #4348. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6815088
29 lines
529 B
Go
29 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 4238. 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]
|
|
}
|
|
|
|
func B(i int) int {
|
|
var b [LARGE]int
|
|
return b[i]
|
|
}
|
|
|
|
func main() {
|
|
n := A()
|
|
B(n)
|
|
}
|