Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix #268, issue with right shift in fast huf decoder
Technically, doing a logical right shift by the number of bits (or more) of a number is undefined behaviour. gcc / x86 seems to do (v >> (shift%bits)), meaning that a right shift of 64 would end up as a right shift of 0 on a uint64_t value. However, other platforms may shift by the full number of bits and produce and output 0, not the input. Instead of leaving this ambiguity, force the 0th value to be manually unrolled / extracted and to do what was there (and validated by test) as an undefined behaviour as a more explicit operation. Signed-off-by: Kimball Thurston <kdt3rd@gmail.com>
- Loading branch information