mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-22 10:33:23 +00:00
Avoid undefined behavior by masking the shift amount.
Should hopefully fix the mips bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222146 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
14915fe523
commit
29e8a627ba
@ -345,7 +345,7 @@ public:
|
||||
|
||||
// If the field is fully contained by CurWord, return it quickly.
|
||||
if (BitsInCurWord >= NumBits) {
|
||||
word_t R = CurWord & ((word_t(1) << NumBits) - 1);
|
||||
word_t R = CurWord & ((word_t(1) << (NumBits & Mask)) - 1);
|
||||
|
||||
// Use a mask to avoid undefined behavior.
|
||||
CurWord >>= (NumBits & Mask);
|
||||
@ -363,7 +363,7 @@ public:
|
||||
if (BitsLeft > BitsInCurWord)
|
||||
return 0;
|
||||
|
||||
word_t R2 = CurWord & ((word_t(1) << BitsLeft) - 1);
|
||||
word_t R2 = CurWord & ((word_t(1) << (BitsLeft & Mask)) - 1);
|
||||
|
||||
// Use a mask to avoid undefined behavior.
|
||||
CurWord >>= (BitsLeft & Mask);
|
||||
|
Loading…
x
Reference in New Issue
Block a user