&gt; So it was decided to make oversized shifts UB.<p>Exactly the stupidity I was pointing out - why make it <i>undefined</i> behaviour, when you could make it <i>implementation-defined</i> behaviour. You might argue the effects are the same, but they aren&#x27;t, of course - the first is global (the whole program is invalid), whereas the second is local (only that instruction has an unknown (but probably still deterministic) outcome, and only in specific circumstances).