From 174058038c72aa0e2cc254ef91d4dbf2956a8d1e Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 21 Feb 2017 10:22:05 -0800 Subject: [PATCH] math/big: define Word as uint instead of uintptr For compatibility with math/bits uint operations. When math/big was written originally, the Go compiler used 32bit int/uint values even on a 64bit machine. uintptr was the type that represented the machine register size. Now, the int/uint types are sized to the native machine register size, so they are the natural machine Word type. On most machines, the size of int/uint correspond to the size of uintptr. On platforms where uint and uintptr have different sizes, this change may lead to performance differences (e.g., amd64p32). Change-Id: Ief249c160b707b6441848f20041e32e9e9d8d8ca Reviewed-on: https://go-review.googlesource.com/37372 Run-TryBot: Robert Griesemer TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- api/except.txt | 1 + src/math/big/arith.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/api/except.txt b/api/except.txt index 857ebb5d7d2..fbabd18a810 100644 --- a/api/except.txt +++ b/api/except.txt @@ -1,4 +1,5 @@ pkg encoding/json, method (*RawMessage) MarshalJSON() ([]uint8, error) +pkg math/big, type Word uintptr pkg net, func ListenUnixgram(string, *UnixAddr) (*UDPConn, error) pkg os (linux-arm), const O_SYNC = 4096 pkg os (linux-arm-cgo), const O_SYNC = 4096 diff --git a/src/math/big/arith.go b/src/math/big/arith.go index d7ea8381e7c..1101451f98e 100644 --- a/src/math/big/arith.go +++ b/src/math/big/arith.go @@ -9,7 +9,7 @@ package big // A Word represents a single digit of a multi-precision unsigned integer. -type Word uintptr +type Word uint const ( // Compute the size _S of a Word in bytes.