# V700. It is suspicious that variable is initialized through itself. Consider inspecting the 'T foo = foo = x;' expression.

The analyzer has detected an expression of the 'T foo = foo = X' pattern. The variable being initialized is itself taking part in the assignment. Unlike the issue diagnosed by the V573 rule, the foo variable here is initialized by an X expression; however, this code is very suspicious: the programmer should have most likely meant something else.

Here is an example of incorrect code:

    int a = a = 3;

It's hard to say for sure what was actually meant here. Probably the correct code should look as follows:

    int a = 3;

It is also possible that the programmer wanted to initialize the variable through assigning a value to another variable:

    int a = b = 3;

This diagnostic is classified as:

CWE-480

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