Partager via


Avertissement C26453

Dépassement arithmétique : le décalage gauche d’un nombre signé négatif n’est pas défini (io.4)

Notes

Cet avertissement indique que le code décale une valeur intégrale signée négative, qui n’est pas modifiable et déclenche le comportement défini par l’implémentation.

Nom de l’analyse du code : LEFTSHIFT_NEGATIVE_SIGNED_NUMBER

Exemple

void leftshift(int shiftCount)
{
  const auto result = -1 << shiftCount;  // C26453 reported here

  // code
}

Pour corriger cet avertissement, utilisez le code suivant :

void leftshift(int shiftCount)
{
  const auto result = ~0u << shiftCount; // OK

  // code
}

Voir aussi

C26450
C26451
C26452
C26454
ES.101 : Utiliser des types non signés pour la manipulation de bits
ES.102 : Utiliser des types signés pour l’arithmétique