Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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;
}