>>126
>>2 のダメな例の2個目と同じ発想。
int のサイズや負の数の表現方法に依存する。
激しく既出なルール違反。

ちなみに、
負の数に1の補数表現や2の補数表現を使った処理系の多くは 『{2の(intのビット数-1)乗} -2』 が返り、
負の数に符号ビット+絶対値を使った処理系の多くは 『2の(intのビット数-2)乗』 が返る。
トラップ表現のある実装の場合はトラップ表現が返る場合もあるかも知れないし、
飽和演算の処理系では 0 が返ることがあるかも知れない。
C++の規格上は不定である。