# V1048. Variable 'foo' was assigned the same value.

Анализатор обнаружил присваивание переменной значения, которое уже содержится в ней. Скорее всего, это логическая ошибка.

Рассмотрим пример:

    int i = foo();
    if (i == 0)
    {
      i = 0;      // <=
    }

Отмеченное присваивание не изменяет значение переменной, и код, скорее всего, содержит ошибку.

Анализатор также может находить случаи, когда точные значения переменных неизвестны:

    void foo(int x, int y)
    {
      if (x == y)
      {
        x = y;    // <=
      }
    }

Хотя переменные 'x' и 'y' могут принимать любые значения, присваивание всё равно не имеет смысла из-за имеющейся выше проверки на равенство.

Данная диагностика классифицируется как:

CWE-1164

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V1048.