>
>
>
V3067. It is possible that 'else' block…


V3067. It is possible that 'else' block was forgotten or commented out, thus altering the program's operation logics.

Анализатор обнаружил подозрительное место в коде - возможно, забытый или некорректно закомментированный блок else.

Данную ситуацию лучше всего разобрать на примерах.

if (!x)
  t = x;
else

z = t;

В этом примере форматирование кода не совпадает с его логикой: выражение "z = t;" выполнится лишь в случае, если (x == false) - вряд ли это имелось в виду. Подобная же ситуация может возникнуть при неудачно закомментированном фрагменте кода:

if (!x)
  t = x;
else
  //t = -1;
z = t;

В данном случае требуется либо исправить форматирование, превратив его в более удобочитаемое, либо исправить логическую ошибку, добавив недостающую ветвь оператора if.

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

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

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