Skip to content

Commit 3715b24

Browse files
committed
Merge #14510: Avoid triggering undefined behaviour in base_uint<BITS>::bits()
96f6dc9 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
2 parents fe23553 + 96f6dc9 commit 3715b24

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/arith_uint256.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ unsigned int base_uint<BITS>::bits() const
176176
for (int pos = WIDTH - 1; pos >= 0; pos--) {
177177
if (pn[pos]) {
178178
for (int nbits = 31; nbits > 0; nbits--) {
179-
if (pn[pos] & 1 << nbits)
179+
if (pn[pos] & 1U << nbits)
180180
return 32 * pos + nbits + 1;
181181
}
182182
return 32 * pos + 1;

0 commit comments

Comments
 (0)