mirror of
https://github.com/golang/go
synced 2024-09-04 23:44:16 +00:00
Storing an out of range constant into a variable should
ideally cause the compiler to give an error. Right now 6g warns about large shifts but does not give an error. This CL removes the out of range shift from shift.go, so that it will work with gccgo, and adds a test case in bugs/ to be fixed at a later date. R=ken,r DELTA=23 (9 added, 14 deleted, 0 changed) OCL=16085 CL=16088
This commit is contained in:
parent
89ac5618ac
commit
08df4dcf7d
10
test/bugs/bug108.go
Normal file
10
test/bugs/bug108.go
Normal file
|
@ -0,0 +1,10 @@
|
|||
// errchk $G $D/$F.go
|
||||
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package main
|
||||
func f() {
|
||||
v := 1 << 1025; // ERROR "overflow"
|
||||
}
|
|
@ -37,14 +37,6 @@ Hello World!
|
|||
=========== ken/rob2.go
|
||||
(defn foo (add 12 34))
|
||||
|
||||
=========== ken/shift.go
|
||||
ken/shift.go:50: stupid shift: 1025
|
||||
ken/shift.go:51: stupid shift: 1025
|
||||
ken/shift.go:57: stupid shift: 1025
|
||||
ken/shift.go:58: stupid shift: 1025
|
||||
ken/shift.go:64: stupid shift: 1025
|
||||
ken/shift.go:65: stupid shift: 1025
|
||||
|
||||
=========== ken/simpprint.go
|
||||
hello world
|
||||
|
||||
|
@ -172,6 +164,10 @@ BUG: errchk: command succeeded unexpectedly: 6g bugs/bug104.go
|
|||
=========== bugs/bug107.go
|
||||
BUG: errchk: command succeeded unexpectedly: 6g bugs/bug107.go
|
||||
|
||||
=========== bugs/bug108.go
|
||||
bugs/bug108.go:4: stupid shift: 1025
|
||||
BUG: errchk: command succeeded unexpectedly: 6g bugs/bug108.go
|
||||
|
||||
=========== fixedbugs/bug016.go
|
||||
fixedbugs/bug016.go:7: overflow converting constant to <uint32>UINT32
|
||||
|
||||
|
|
|
@ -51,22 +51,16 @@ main()
|
|||
testi( int(1234) >> 0, 0,0,1);
|
||||
testi( int(1234) << 5, 0,1,0);
|
||||
testi( int(1234) >> 5, 0,1,1);
|
||||
testi( int(1234) << 1025, 0,2,0);
|
||||
testi( int(1234) >> 1025, 0,2,1);
|
||||
|
||||
testi(int(-1234) << 0, 1,0,0);
|
||||
testi(int(-1234) >> 0, 1,0,1);
|
||||
testi(int(-1234) << 5, 1,1,0);
|
||||
testi(int(-1234) >> 5, 1,1,1);
|
||||
testi(int(-1234) << 1025, 1,2,0);
|
||||
testi(int(-1234) >> 1025, 1,2,1);
|
||||
|
||||
testu(uint(5678) << 0, 2,0,0);
|
||||
testu(uint(5678) >> 0, 2,0,1);
|
||||
testu(uint(5678) << 5, 2,1,0);
|
||||
testu(uint(5678) >> 5, 2,1,1);
|
||||
testu(uint(5678) << 1025, 2,2,0);
|
||||
testu(uint(5678) >> 1025, 2,2,1);
|
||||
|
||||
/*
|
||||
* test variable evaluations
|
||||
|
|
Loading…
Reference in a new issue