コンパイラーによって定義がかわる部分が未定義動作だろ。
コンパイラーの実装によっては未定義動作がクラッシュするとか
間違った動作をするかもしれないと
定義されてるだけで、未定義なわけではない。