# V6040. The code's operational logic does not correspond with its formatting.

Анализатор обнаружил потенциальную ошибку, связанную c тем, что форматирование кода, следующего за условным оператором, не соответствует логике выполнения программы. Высока вероятность, что пропущены открывающиеся и закрывающиеся фигурные скобки.

Рассмотрим пример некорректного кода:

    if (a == 1)
      b = c; d = b;

В данном случае присваивание 'd = b;' будет выполняться всегда, независимо от условия 'a == 1'.

Если код ошибочен, то ситуацию можно исправить, используя фигурные скобки. Корректный вариант кода:

    if (a == 1)
      { b = c; d = b; }

Другой пример некорректного кода:

    if (a == 1)
      b = c;
      d = b;

Для исправления ошибки так же следует использовать фигурные скобки. Корректный вариант кода:

    if (a == 1)
    {
      b = c;
      d = b;
    }

Если код корректен, то чтобы исчезло предупреждение V6040, следует отформатировать код следующим образом:

    if (a == 1)
      b = c;
    d = b;

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

CWE-483

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