Partager via


Avertissement C26450

Dépassement arithmétique : l’opération « opérateur » provoque le dépassement au moment de la compilation. Utiliser un type plus large pour stocker les opérandes (io.1)

Notes

Cet avertissement indique qu’une opération arithmétique a été provablement perdue au moment de la compilation. Il peut être déclaré lorsque les opérandes sont toutes des constantes au moment de la compilation. Actuellement, nous vérifions le décalage gauche, la multiplication, l’addition et les opérations de soustraction pour ces dépassements de capacité.

Avertissement C4307 est une vérification similaire dans le compilateur Microsoft C++.

Nom de l’analyse du code : RESULT_OF_ARITHMETIC_OPERATION_PROVABLY_LOSSY

Exemples

int multiply()
{
    const int a = INT_MAX;
    const int b = 2;
    int c = a * b; // C26450 reported here
    return c;
}

Pour corriger cet avertissement, utilisez le code suivant.

long long multiply()
{
    const int a = INT_MAX;
    const int b = 2;
    long long c = static_cast<long long>(a) * b; // OK
    return c;
}

Voir aussi

C26451
C26452
C26453
C26454
ES.103 : Ne pas dépasser