It is an undefined behavior in C when the right operand of a shift operation exceeds the bit-width of the left operand. We define the shift operation to be `x << (y % B)` where `B` is the bit-width of the left operand.