﻿# V3173\. Possible incorrect initialization of variable\. Consider verifying the initializer\.

The analyzer detected a potential error that a variable or property initialization is missed\.

Consider the example:

```cpp
class A
{
  int field1;
  string field2;
  string field3;
  ....
  public void foo(int value)
  {
    field1 = value;
    field2 =                    // <=
    field3 = GetInitialization(value);
  }
}
```

In this case, the developer postponed the 'field2' initialization hoping that the code wouldn't compile and thus would remind of a missed initialization\. But the code compiled successfully\. 'field2' is assigned the value of 'field3'\.

A similar situation may occur during a declaration, such as:

```cpp
int b, c;

int a = 
b = c = 2;
```

This code looks suspicious\. It is unclear what the author wanted to use to initialize the 'a' variable\. 

The analyzer will not issue a warning in a number of cases where it is clear that the code is written this way on purpose\.

For example, there is indentation relative to the first line:

```cpp
var1 =
  var2 = 100;
```

Here is another example with no indentation, but the value is written in several variables in the same way:

```cpp
var1 =
var2 =
var3 =
var4 = 100;
```