aboutsummaryrefslogtreecommitdiff
path: root/test/bounds.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/bounds.go')
-rw-r--r--test/bounds.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/bounds.go b/test/bounds.go
index 34c444877b..aa1d51b6f9 100644
--- a/test/bounds.go
+++ b/test/bounds.go
@@ -201,6 +201,20 @@ func main() {
use(p1k[ui&1000])
use(p100k[ui&1000]) // ERROR "index bounds check elided"
+ use(a1[i&^-1]) // ERROR "index bounds check elided"
+ use(a1[i&^0])
+ use(a1[i&^-2])
+ use(a1[i&^1])
+ use(a1k[i&^-1]) // ERROR "index bounds check elided"
+ use(a1k[i&^0])
+ use(a1k[i&^-2]) // ERROR "index bounds check elided"
+ use(a1k[i&^1])
+ use(a1k[i8&^0])
+ use(a1k[i8&^-128]) // ERROR "index bounds check elided"
+ use(a1k[ui8&^1]) // ERROR "index bounds check elided"
+ use(a1k[ui16&^0xf000])
+ use(a1k[ui16&^0xff00]) // ERROR "index bounds check elided"
+
// Right shift cuts the effective number of bits in the index,
// but only for unsigned (signed stays negative).
use(s[i32>>22])