]> Cypherpunks repositories - gostls13.git/commitdiff
test: restore binary.BigEndian use in checkbce
authorAlberto Donizetti <alb.donizetti@gmail.com>
Mon, 24 Sep 2018 21:05:39 +0000 (23:05 +0200)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 24 Sep 2018 21:20:51 +0000 (21:20 +0000)
CL 136855 removed the encoding/binary dependency from the checkbce.go
test by defining a local Uint64 to fix the noopt builder; then a more
general mechanism to skip tests on the noopt builder was introduced in
CL 136898, so we can now restore the binary.Uint64 calls in testbce.

Change-Id: I3efbb41be0bfc446a7e638ce6a593371ead2684f
Reviewed-on: https://go-review.googlesource.com/137056
Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
Reviewed-by: Giovanni Bajo <rasky@develer.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

test/checkbce.go

index ef4e584ca0923a8e0aa8f7c3e8fc791e5493ded1..a8f060aa72eb6002fbefd35ab57284f192e25bbf 100644 (file)
@@ -10,6 +10,8 @@
 
 package main
 
+import "encoding/binary"
+
 func f0(a []int) {
        a[0] = 1 // ERROR "Found IsInBounds$"
        a[0] = 1
@@ -142,18 +144,12 @@ func g4(a [100]int) {
        }
 }
 
-func Uint64(b []byte) uint64 {
-       _ = b[7] // ERROR "Found IsInBounds$"
-       return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |
-               uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
-}
-
 func decode1(data []byte) (x uint64) {
        for len(data) >= 32 {
-               x += Uint64(data[:8])
-               x += Uint64(data[8:16])
-               x += Uint64(data[16:24])
-               x += Uint64(data[24:32])
+               x += binary.BigEndian.Uint64(data[:8])
+               x += binary.BigEndian.Uint64(data[8:16])
+               x += binary.BigEndian.Uint64(data[16:24])
+               x += binary.BigEndian.Uint64(data[24:32])
                data = data[32:]
        }
        return x
@@ -163,13 +159,13 @@ func decode2(data []byte) (x uint64) {
        // TODO(rasky): this should behave like decode1 and compile to no
        // boundchecks. We're currently not able to remove all of them.
        for len(data) >= 32 {
-               x += Uint64(data)
+               x += binary.BigEndian.Uint64(data)
                data = data[8:]
-               x += Uint64(data) // ERROR "Found IsInBounds$"
+               x += binary.BigEndian.Uint64(data) // ERROR "Found IsInBounds$"
                data = data[8:]
-               x += Uint64(data) // ERROR "Found IsInBounds$"
+               x += binary.BigEndian.Uint64(data) // ERROR "Found IsInBounds$"
                data = data[8:]
-               x += Uint64(data) // ERROR "Found IsInBounds$"
+               x += binary.BigEndian.Uint64(data) // ERROR "Found IsInBounds$"
                data = data[8:]
        }
        return x