Gibt es eine GCC-Warnung, die Bitverschiebungsvorgänge bei vorzeichenbehafteten Typen erkennt?

Wenn ich die C ++ - ISO-Spezifikation (Abschnitte 5.8.2 und 5.8.3) nach rechts lese, ist die Rechtsverschiebung von Typen mit negativem Vorzeichen implementierungsspezifisch und die Linksverschiebung undefiniertes Verhalten.

Daher möchte ich in unserem alten Quellcode Shift-Operationen für signierte Typen finden, die wir mit g ++ 4.8.2 kompilieren.

Leider konnte ich im Internet keine solche Option findenHandbuch. Ich kann diesen Code zum Beispiel mit "g ++ -Wall -Wextra -pedantic" ohne Warnung kompilieren:

int si    = -1;
int left  = si << 1; // -2 (multiplication by 2, sign is preserved)
int right = si >> 1; // -1 (no change, only 1s)

Kann mir jemand sagen, ob es eine solche Warnung gibt und wenn nicht, warum es gcc egal ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage