# V6015. Consider inspecting the expression. Probably the '!='/'-='/'+=' should be used here.

The analyzer has detected a potential error, related to a strange usage of operators ('=!', '=-', '=+'). Most likely, their usage is incorrect and one of the following operators should be used here: '!=', '-=', '+='.

Operator '=!'

Example of suspicious code:

    boolean a = ... ;
    boolean b = ... ;
    ...
    if (a =! b)
    {
      ...
    }

It's most probably that this code should check that the 'a' variable is not equal to 'b'. If so, the correct code should look like follows:

    if (a != b)
    {
      ...
    }

The analyzer accounts for formatting in the expression. That's why if it is exactly assignment you need to perform - not comparison - you should specify it through parentheses or blanks. The following code samples are considered correct:

    if (a = !b)
      ...
    if (a=(!b))
      ...

Operator '=-'

Example of suspicious code:

    int size = ... ;
    int delta ... ;
    ...
    size =- delta;

This code may be correct, but it is highly probable that there is a misprint and the programmer actually intended to use the '-=' operator. This is the fixed code:

    size -= delta;

If the code is correct, you may type in an additional space between the characters '=' and '-' to remove the V6015 warning. This is an example of correct code where the warning is not generated:

    size = -delta;

Operator '=+'

Example of suspicious code:

    int size = ... ;
    int delta ... ;
    ...
    size =+ delta;

This is the fixed code:

    size+=delta;

If this code is correct, you may remove '+' or type in an additional space to prevent showing the V6015 warning. The following is an example of correct code where the warning is not generated:

    size = delta;
    size = +delta;

This diagnostic is classified as:

CWE-480