diff options
author | RSDuck <RSDuck@users.noreply.github.com> | 2023-08-01 03:00:41 +0200 |
---|---|---|
committer | RSDuck <RSDuck@users.noreply.github.com> | 2023-08-01 03:00:41 +0200 |
commit | 7731f66e553a396f136953798751d5b6f84a9dd1 (patch) | |
tree | b302debfed8bdcccfbb76cee82f57d50c0774898 /src/NonStupidBitfield.h | |
parent | 3efbf1b813e40c02e3e12488712f33bb0b63f468 (diff) |
fix some UB
Diffstat (limited to 'src/NonStupidBitfield.h')
-rw-r--r-- | src/NonStupidBitfield.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/NonStupidBitfield.h b/src/NonStupidBitfield.h index badefaf..a4fe7ec 100644 --- a/src/NonStupidBitfield.h +++ b/src/NonStupidBitfield.h @@ -144,10 +144,11 @@ struct NonStupidBitField { for (u32 i = 0; i < DataLength; i++) { - u32 idx = __builtin_ctzll(Data[i]); - if (Data[i] && idx + i * 64 < Size) + if (Data[i]) { - return {*this, i, idx, Data[i] & ~(1ULL << idx)}; + u32 idx = __builtin_ctzll(Data[i]); + if (idx + i * 64 < Size) + return {*this, i, idx, Data[i] & ~(1ULL << idx)}; } } return End(); |