summaryrefslogtreecommitdiff
path: root/test/64bit.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-10-15 16:32:45 -0700
committerRuss Cox <rsc@golang.org>2009-10-15 16:32:45 -0700
commitb41f742612c9c3baf4fc4fccc638482b4f24d605 (patch)
tree59d3eb13285d32a955bf6127a98d1b888a695a53 /test/64bit.go
parentd39dce6e7ae95a75dcd62b8771b9b30f66bd0724 (diff)
downloadgo-b41f742612c9c3baf4fc4fccc638482b4f24d605.tar.gz
386 shift bug; wasn't zero-extending 16- and 8-bit counts
+test R=ken OCL=35801 CL=35801
Diffstat (limited to 'test/64bit.go')
-rw-r--r--test/64bit.go46
1 files changed, 38 insertions, 8 deletions
diff --git a/test/64bit.go b/test/64bit.go
index a07f6cc15..121c54d36 100644
--- a/test/64bit.go
+++ b/test/64bit.go
@@ -459,12 +459,27 @@ const prolog =
"}\n"
"\n"
"func testInt64Shift(a int64, b uint64, left, right int64) {\n"
- " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`int64`, a, op, s, `=`, n, `should be`, want); }\n"
- " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`int64`, a, op, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`int64`, a, op, `uint64`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`int64`, a, op, `uint64`, s, `=`, n, `should be`, want); }\n"
+ " if uint64(uint(b)) == b {\n"
+ " b := uint(b);\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`int64`, a, op, `uint`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`int64`, a, op, `uint`, s, `=`, n, `should be`, want); }\n"
+ " }\n"
" if uint64(uint32(b)) == b {\n"
" b := uint32(b);\n"
- " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`int64`, a, op, s, `=`, n, `should be`, want); }\n"
- " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`int64`, a, op, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`int64`, a, op, `uint32`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`int64`, a, op, `uint32`, s, `=`, n, `should be`, want); }\n"
+ " }\n"
+ " if uint64(uint16(b)) == b {\n"
+ " b := uint16(b);\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`int64`, a, op, `uint16`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`int64`, a, op, `uint16`, s, `=`, n, `should be`, want); }\n"
+ " }\n"
+ " if uint64(uint8(b)) == b {\n"
+ " b := uint8(b);\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`int64`, a, op, `uint8`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`int64`, a, op, `uint8`, s, `=`, n, `should be`, want); }\n"
" }\n"
"}\n"
"\n"
@@ -489,12 +504,27 @@ const prolog =
"}\n"
"\n"
"func testUint64Shift(a, b, left, right uint64) {\n"
- " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`uint64`, a, op, s, `=`, n, `should be`, want); }\n"
- " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`uint64`, a, op, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`uint64`, a, op, `uint64`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`uint64`, a, op, `uint64`, s, `=`, n, `should be`, want); }\n"
+ " if uint64(uint(b)) == b {\n"
+ " b := uint(b);\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`uint64`, a, op, `uint`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`uint64`, a, op, `uint`, s, `=`, n, `should be`, want); }\n"
+ " }\n"
" if uint64(uint32(b)) == b {\n"
" b := uint32(b);\n"
- " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`uint64`, a, op, s, `=`, n, `should be`, want); }\n"
- " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`uint64`, a, op, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`uint64`, a, op, `uint32`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`uint64`, a, op, `uint32`, s, `=`, n, `should be`, want); }\n"
+ " }\n"
+ " if uint64(uint16(b)) == b {\n"
+ " b := uint16(b);\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`uint64`, a, op, `uint16`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`uint64`, a, op, `uint16`, s, `=`, n, `should be`, want); }\n"
+ " }\n"
+ " if uint64(uint8(b)) == b {\n"
+ " b := uint8(b);\n"
+ " if n, op, s, want := a << b, `<<`, b, left; n != want { ok=false; println(`uint64`, a, op, `uint8`, s, `=`, n, `should be`, want); }\n"
+ " if n, op, s, want := a >> b, `>>`, b, right; n != want { ok=false; println(`uint64`, a, op, `uint8`, s, `=`, n, `should be`, want); }\n"
" }\n"
"}\n"
"\n"