Re:EABitTricks.h
by anonymoushn on Monday December 19, 2022 @01:10PM
(#34055405)
I think something like this would handle it
In addition to the stated problems with wraparound and zero (claimed fixed here) the implementation in this header file seems to have some potential correctness issue if you pass in a signed type and end up performing right shifts on values with the sign bit set and your compiler decides this means you want sign extension.
[ Parent
| on HN ]
Re:EABitTricks.h
by anonymoushn on Monday December 19, 2022 @04:50PM
(#34058258)
The 2nd branch here only exists because shifting a uint32_t right by 32 is undefined. You can avoid it if you do 2 shifts instead. The first branch is tougher to get rid of.