diff options
author | Ian Lance Taylor <iant@golang.org> | 2010-09-01 13:40:20 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2010-09-01 13:40:20 -0700 |
commit | 426275d70236be0ac817ae8185c215e9fc4eb681 (patch) | |
tree | 0dadbf7c1d44dd37eed6138739fa99a5b1fe15a7 | |
parent | 728003e340ab6d20d49f8f67f1b36722d5de2d65 (diff) | |
download | go-426275d70236be0ac817ae8185c215e9fc4eb681.tar.gz go-426275d70236be0ac817ae8185c215e9fc4eb681.zip |
test: Use global variables to defeat gccgo optimizer.
The gccgo compiler is smart enough to not make something which
is not used. Use global variables to defeat this
optimization.
R=rsc
CC=golang-dev
https://golang.org/cl/2129041
-rw-r--r-- | test/fixedbugs/bug273.go | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/test/fixedbugs/bug273.go b/test/fixedbugs/bug273.go index ff8f1c6af3..816f69e8f1 100644 --- a/test/fixedbugs/bug273.go +++ b/test/fixedbugs/bug273.go @@ -15,6 +15,8 @@ var bug = false var minus1 = -1 var big int64 = 10 | 1<<32 +var g1 []int + func shouldfail(f func(), desc string) { defer func() { recover() }() f() @@ -26,52 +28,56 @@ func shouldfail(f func(), desc string) { } func badlen() { - _ = make([]int, minus1) + g1 = make([]int, minus1) } func biglen() { - _ = make([]int, big) + g1 = make([]int, big) } func badcap() { - _ = make([]int, 10, minus1) + g1 = make([]int, 10, minus1) } func badcap1() { - _ = make([]int, 10, 5) + g1 = make([]int, 10, 5) } func bigcap() { - _ = make([]int, 10, big) + g1 = make([]int, 10, big) } const ( addrBits = 8*uint(unsafe.Sizeof((*byte)(nil))) sh = addrBits/2 - 2 ) +var g2 [][1<<sh][1<<sh]byte func overflow() { - _ = make([][1<<sh][1<<sh]byte, 64) + g2 = make([][1<<sh][1<<sh]byte, 64) } +var g3 map[int]int func badmapcap() { - _ = make(map[int]int, minus1) + g3 = make(map[int]int, minus1) } func bigmapcap() { - _ = make(map[int]int, big) + g3 = make(map[int]int, big) } +var g4 chan int func badchancap() { - _ = make(chan int, minus1) + g4 = make(chan int, minus1) } func bigchancap() { - _ = make(chan int, big) + g4 = make(chan int, big) } +var g5 chan [1<<15]byte func overflowchan() { if addrBits == 32 { - _ = make(chan [1<<15]byte, 1<<20) + g5 = make(chan [1<<15]byte, 1<<20) } else { // cannot overflow on 64-bit, because // int is 32 bits and max chan value size |