﻿# V519\. The 'x' variable is assigned values twice successively\. Perhaps this is a mistake\.

The analyzer detected a potential error related to assignment of a value two times successively to the same variable while the variable itself is not used between these assignments\.

Consider this sample:

```cpp
A = GetA();
A = GetB();
```

The fact that the 'A' variable is assigned values twice might signal an error\. Most probably, the code should look this way:

```cpp
A = GetA();
B = GetB();
```

If the variable is used between assignments, the analyzer considers this code correct:

```cpp
A = 1;
A = A + 1;
A = Foo(A);
```

Let's see how such an error may look in practice\. The following sample is taken from a real application where a user class CSize is implemented:

```cpp
class CSize : public SIZE
{
  ...
  CSize(POINT pt) { cx = pt.x;  cx = pt.y; }
```

The correct version is the following:

```cpp
CSize(POINT pt) { cx = pt.x;  cy = pt.y; }
```

Let's study one more example\. The second line was written for the purpose of debugging or checking how text of a different color would look\. And it seems that the programmer forgot to remove the second line then:

```cpp
m_clrSample = GetSysColor(COLOR_WINDOWTEXT);
m_clrSample = RGB(60,0,0);
```

Sometimes the analyzer generates false alarms when writing into variables is used for the purpose of debugging\. Here is an example of such code:

```cpp
status = Foo1();
status = Foo2();
```

In this case, we may suppress false alarms using the "//\-V519" comment\. We may also remove meaningless assignments from the code\. And the last thing\. Perhaps this code is still incorrect, so we have to check the value of the 'status' variable\.