Commit 0d82e698 authored by Russ Cox's avatar Russ Cox

test: prepare for 64-bit ints

Minor tweaks to avoid assuming that int is always 32 bits.

Update #2188.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6553062
parent 3cd890dd
...@@ -247,10 +247,8 @@ func main() { ...@@ -247,10 +247,8 @@ func main() {
use(s[ui/1e6]) use(s[ui/1e6])
use(a1[ui/1e6]) use(a1[ui/1e6])
use(a1k[ui/1e6]) use(a1k[ui/1e6])
use(a100k[ui/1e6]) // ERROR "index bounds check elided"
use(p1[ui/1e6]) use(p1[ui/1e6])
use(p1k[ui/1e6]) use(p1k[ui/1e6])
use(p100k[ui/1e6]) // ERROR "index bounds check elided"
use(s[i/1e7]) use(s[i/1e7])
use(a1[i/1e7]) use(a1[i/1e7])
...@@ -262,12 +260,7 @@ func main() { ...@@ -262,12 +260,7 @@ func main() {
use(s[ui/1e7]) use(s[ui/1e7])
use(a1[ui/1e7]) use(a1[ui/1e7])
use(a1k[ui/1e7]) // ERROR "index bounds check elided"
use(a100k[ui/1e7]) // ERROR "index bounds check elided"
use(p1[ui/1e7]) use(p1[ui/1e7])
use(p1k[ui/1e7]) // ERROR "index bounds check elided"
use(p100k[ui/1e7]) // ERROR "index bounds check elided"
} }
var sum int var sum int
......
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
package main package main
import "unsafe"
var bug = false var bug = false
var minus1 = -1 var minus1 = -1
var big int64 = 10 | 1<<32 var big int64 = 10 | 1<<32
var g1 []int type block [1<<19]byte
var g1 []block
func shouldfail(f func(), desc string) { func shouldfail(f func(), desc string) {
defer func() { recover() }() defer func() { recover() }()
...@@ -28,55 +28,47 @@ func shouldfail(f func(), desc string) { ...@@ -28,55 +28,47 @@ func shouldfail(f func(), desc string) {
} }
func badlen() { func badlen() {
g1 = make([]int, minus1) g1 = make([]block, minus1)
} }
func biglen() { func biglen() {
g1 = make([]int, big) g1 = make([]block, big)
} }
func badcap() { func badcap() {
g1 = make([]int, 10, minus1) g1 = make([]block, 10, minus1)
} }
func badcap1() { func badcap1() {
g1 = make([]int, 10, 5) g1 = make([]block, 10, 5)
} }
func bigcap() { func bigcap() {
g1 = make([]int, 10, big) g1 = make([]block, 10, big)
} }
var g3 map[int]int var g3 map[block]block
func badmapcap() { func badmapcap() {
g3 = make(map[int]int, minus1) g3 = make(map[block]block, minus1)
} }
func bigmapcap() { func bigmapcap() {
g3 = make(map[int]int, big) g3 = make(map[block]block, big)
} }
var g4 chan int type cblock [1<<16-1]byte
var g4 chan cblock
func badchancap() { func badchancap() {
g4 = make(chan int, minus1) g4 = make(chan cblock, minus1)
} }
func bigchancap() { func bigchancap() {
g4 = make(chan int, big) g4 = make(chan cblock, big)
} }
const addrBits = unsafe.Sizeof((*byte)(nil))
var g5 chan [1<<15]byte
func overflowchan() { func overflowchan() {
if addrBits == 32 { g4 = make(chan cblock, 1<<30)
g5 = make(chan [1<<15]byte, 1<<20)
} else {
// cannot overflow on 64-bit, because
// int is 32 bits and max chan value size
// in the implementation is 64 kB.
panic(1)
}
} }
func main() { func main() {
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
package main package main
func main() { // ERROR "stack frame too large" func main() { // ERROR "stack frame too large"
var arr [1000200030]int var arr [1000200030]int32
arr_bkup := arr arr_bkup := arr
_ = arr_bkup _ = arr_bkup
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment