V637. Two opposite conditions were encountered. The second condition is always false.


The analyzer has detected a potential logic error in the program. The error is this: two conditional operators in a sequence contain mutually exclusive conditions. Here are examples of mutually exclusive conditions:

  • 'A == B' and 'A != B';
  • 'B < C' and 'B > C';
  • 'X == Y' and 'X < Y';
  • etc.

This error usually occurs as a consequence of a misprint or poor refactoring. As a result, program execution logic is violated.

Consider an example of incorrect code:

if (A == B)
  if (B != A)
    B = 5;

In this case, the "B = 5;" statement will never be executed. Most likely, an incorrect variable is used in the first or in the second condition. We need to find out the program execution logic.

This is the fixed code:

if (A == B)
  if (B != C)
    B = 5;

According to Common Weakness Enumeration, potential errors found by using this diagnostic are classified as CWE-570.

You can look at examples of errors detected by the V637 diagnostic.


Do you make errors in the code?

Check your code
with PVS-Studio

Static code analysis
for C, C++, and C#

goto PVS-Studio;