# V637. Use of two opposite conditions. 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;

This diagnostic is classified as:

CWE-570

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