The analyzer detected a potential error: there is an excessive comparison in code.
Let me explain this by a simple example:
if (Aa[42] == 10 && Aa[42] != 3)
The condition will hold if 'Aa == 10'. The second part of the expression is meaningless. On studying the code, you may come to one of the two conclusions:
1) The expression can be simplified. This is the fixed code:
if (Aa[42] == 10)
2) The expression has an error. This is the fixed code:
if (Aa[42] == 10 && Aa[43] != 3)
Let's study the example from practice. We have no error here, but the expression is excessive, which might make the code less readable:
while (*pBuff == ' ' && *pBuff != '\0')
pBuff++;
The " *pBuff != '\0' " check is meaningless. This is the shortened code:
while (*pBuff == ' ')
pBuff++;
This diagnostic is classified as:
|
You can look at examples of errors detected by the V590 diagnostic. |