diff options
author | Ian Lance Taylor <iant@golang.org> | 2010-09-11 22:51:05 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2010-09-11 22:51:05 -0700 |
commit | bd55370edade7a44ced642dc417f103990ca339f (patch) | |
tree | 51bceba66ad06a1ef04b986a20f69a3cc18f9211 /test/zerodivide.go | |
parent | c8465347c22d43c90cf54a2571f88c7595eb9488 (diff) | |
download | go-bd55370edade7a44ced642dc417f103990ca339f.tar.gz |
test: Make gccgo believe that the variables can change.
This test is supposed to test runtime behaviour. However,
gccgo is smart enough to see that the variables are local to
the package and that they never change. Add a function so
that gccgo thinks that the variables can in fact vary, so that
the test works at runtime as expected.
R=rsc
CC=golang-dev
http://codereview.appspot.com/2178041
Diffstat (limited to 'test/zerodivide.go')
-rw-r--r-- | test/zerodivide.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/zerodivide.go b/test/zerodivide.go index 224797fcd..5fe1eb00d 100644 --- a/test/zerodivide.go +++ b/test/zerodivide.go @@ -46,6 +46,30 @@ var ( c128, d128, e128 complex128 = 0+0i, 0+0i, 1+1i ) +// Fool gccgo into thinking that these variables can change. +func NotCalled() { + i++; j++; k++ + i8++; j8++; k8++ + i16++; j16++; k16++ + i32++; j32++; k32++ + i64++; j64++; k64++ + + u++; v++; w++ + u8++; v8++; w8++ + u16++; v16++; w16++ + u32++; v32++; w32++ + u64++; v64++; w64++ + up++; vp++; wp++ + + f += 1; g += 1; h += 1 + f32 += 1; g32 += 1; h32 += 1 + f64 += 1; g64 += 1; h64 += 1 + + c += 1+1i; d += 1+1i; e += 1+1i + c64 += 1+1i; d64 += 1+1i; e64 += 1+1i + c128 += 1+1i; d128 += 1+1i; e128 += 1+1i +} + var tmp interface{} // We could assign to _ but the compiler optimizes it too easily. |