Skip to content

Fix undefined behavior in the macros SET_BH, CLEAR_BH, & ISSET_BH

Paul Kehrer requested to merge reaperhulk/bzip2:fix-undefined into master

These macros contain this pattern: 1 << ((Int32_value) & 31

This causes the undefined behavior sanitizers in clang and gcc to complain because the shift, while ultimately stored to an unsigned variable, is done as a signed value. Adding a cast to unsigned for the int32 value resolves this issue.

Merge request reports