Existe um aviso do GCC que detecta operações de troca de bits em tipos assinados?

Se eu ler a especificação ISO C ++ (seções 5.8.2 e 5.8.3) corretamente, o deslocamento à direita dos tipos assinados negativos é específico da implementação e o comportamento indefinido do deslocamento à esquerda.

Portanto, eu gostaria de encontrar operações de turno em tipos assinados em nosso código fonte herdado, que compilamos com o g ++ 4.8.2.

Infelizmente, não consegui encontrar essa opção nomanual. Por exemplo, eu posso compilar esse código com "g ++ -Wall -Wextra -pedantic" sem um aviso:

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

Alguém pode me dizer se existe esse aviso e, se não, por que o gcc não se importa com isso?

questionAnswers(2)

yourAnswerToTheQuestion