Перейти к содержанию

Использование Если/ИначеЕсли с константным выражением

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

Подозрительный код

Процедура Процедура1()
    Если ИСТИНА Тогда   //ошибка
        Действие();
    КонецЕсли;
КонецПроцедуры;
Процедура ДругаяПроцедура1()
    Если Ложь Тогда //ошибка
        Действие();
    КонецЕсли;
КонецПроцедуры;

Согласно Common Weakness Enumeration потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как: - CWE-570 - CWE-571

См. также - MSC12-C. Detect and remove code that has no effect or is never executed - MITRE, CWE-489 - Leftover Debug Code - MITRE, CWE-570 - Expression is Always False - MITRE, CWE-571 - Expression is Always True - MISRA C:2004, 13.7 - Boolean operations whose results are invariant shall not be permitted. - MISRA C:2012, 14.3 - Controlling expressions shall not be invariant