aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2018-10-18 22:55:41 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2018-10-18 22:55:44 +0200
commit3715b2489e986c27efd1dbd249d3604c3acd27b2 (patch)
tree7e20574b803c5fb08f368ac5d43bd4c74dd8cc21 /src
parentfe23553edd84b0247e05ec3de023944c558afd54 (diff)
parent96f6dc9fc50b1cc59e26d50940ebf46e1bdcc0ba (diff)
downloadbitcoin-3715b2489e986c27efd1dbd249d3604c3acd27b2.tar.xz
Merge #14510: Avoid triggering undefined behaviour in base_uint<BITS>::bits()
96f6dc9fc50b1cc59e26d50940ebf46e1bdcc0ba Avoid triggering undefined behaviour in base_uint<BITS>::bits() (practicalswift) Pull request description: Avoid triggering undefined behaviour in `base_uint<BITS>::bits()`. `1 << 31` is undefined behaviour in C++11. Given the reasonable assumption of `sizeof(int) * CHAR_BIT == 32`. Tree-SHA512: 995fa38e71c8921873139ecf1b7dd54178555219af3be60d07290f379439ddd8479e3963c6f3cae8178efb61063a0f9add6cba82a5578d13888597b5bcd54f22
Diffstat (limited to 'src')
-rw-r--r--src/arith_uint256.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/arith_uint256.cpp b/src/arith_uint256.cpp
index 13fa176f8b..791dad7a60 100644
--- a/src/arith_uint256.cpp
+++ b/src/arith_uint256.cpp
@@ -176,7 +176,7 @@ unsigned int base_uint<BITS>::bits() const
for (int pos = WIDTH - 1; pos >= 0; pos--) {
if (pn[pos]) {
for (int nbits = 31; nbits > 0; nbits--) {
- if (pn[pos] & 1 << nbits)
+ if (pn[pos] & 1U << nbits)
return 32 * pos + nbits + 1;
}
return 32 * pos + 1;