Fix clang warning: shifting a negative signed value is undefined