be708ca3cf
When unsigned char values are shifted, they are promoted to int (unless sizeof(int) == sizeof(char)). This means that the change in be708ca3cf ultimately leads to a sign extension bug.