> I believe Jakub is referring to the following in the C standard: > > "Bitwise shift operators > ... > Semantics > ... If the value of the right operand ... is greater than or equal to the > width of the promoted left operand, the behavior is undefined." > > So on 16-bit int systems you can't portably shift 2U by more than 15.
Sure, but we're talking about targets for which the shift count is masked, not about the C standard. -- Eric Botcazou