aboutsummaryrefslogtreecommitdiff
path: root/test/const.go
diff options
context:
space:
mode:
authorAlberto Donizetti <alb.donizetti@gmail.com>2015-08-20 17:53:41 +0200
committerRobert Griesemer <gri@golang.org>2015-08-21 20:27:22 +0000
commit85de30e72f62c41f21eb1eb2c8ad4a05a163c9c1 (patch)
tree775fc4eda1597493ea1bbfdd8181d5d7d19ab4e7 /test/const.go
parent548041ed08a1f006e4cdac62f2b3bf4adf99f894 (diff)
downloadgo-85de30e72f62c41f21eb1eb2c8ad4a05a163c9c1.tar.gz
go-85de30e72f62c41f21eb1eb2c8ad4a05a163c9c1.zip
cmd/compile: allow huge rsh in constants arithmetic
Currently an expression like var v = 0 >> 1000 is rejected by gc with a "stupid shift" error, while gotype compiles it successfully. As suggested by gri on the issue tracker, allow an rsh right operand to be any valid uint value. Fixes #11328 Change-Id: I6ccb3b7f842338d91fd26ae37dd4fa279d7fc440 Reviewed-on: https://go-review.googlesource.com/13777 Reviewed-by: Robert Griesemer <gri@golang.org>
Diffstat (limited to 'test/const.go')
-rw-r--r--test/const.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/const.go b/test/const.go
index d583659c6c..6c29336396 100644
--- a/test/const.go
+++ b/test/const.go
@@ -19,6 +19,9 @@ const (
c3div2 = 3 / 2
c1e3 = 1e3
+ rsh1 = 1e100 >> 1000
+ rsh2 = 1e302 >> 1000
+
ctrue = true
cfalse = !ctrue
)
@@ -48,6 +51,8 @@ func ints() {
assert(c3div2 == 1, "3/2")
assert(c1e3 == 1000, "c1e3 int")
assert(c1e3 == 1e3, "c1e3 float")
+ assert(rsh1 == 0, "rsh1")
+ assert(rsh2 == 9, "rsh2")
// verify that all (in range) are assignable as ints
var i int