Код не выполняется
Этот дефект возникает, когда блок кода не может быть достигнут из-за условия, которое всегда является true или false. Этот дефект исключает:
Code deactivated by constant false
condition
, который проверяет наличие директивы с постоянными во время компиляции, такими как #if 0
или if(0)
.
Unreachable code
, который проверяет код после выхода из системы управления, такой как goto
, break
, или return
.
Useless if
, который проверяет, являются ли операторы всегда true.
Мертвый код теряет время разработки, память и циклы выполнения. Разработчики должны поддерживать код, который не выполняется. Инструкции, которые не выполняются, все еще должны храниться и кэшироваться.
Мертвый код часто представляет унаследованный код, который больше не используется. Очистка мертвого кода периодически сокращает будущее техническое обслуживание.
Исправление зависит от первопричины дефекта. Например, первопричиной может быть условие ошибки, которое дважды проверяется на одном и том же пути выполнения, делая вторую проверку избыточной и соответствующий блок мертвым кодом.
Часто детали результата показывают последовательность событий, которые привели к дефекту. Вы можете реализовать исправление на любом событии в последовательности. Если сведения о результате не отображают историю событий, можно отследить их с помощью опций правого щелчка в исходном коде и просмотреть предыдущие связанные события. Смотрите также Результаты интерпретации Bug Finder в интерфейсе пользователя Polyspace Desktop.
См. примеры исправлений ниже.
Если вы видите мертвый код от использования функций, таких как isinf
и isnan
, включите режим анализа, который учитывает не конечные значения. См. Consider non finite floats (-allow-non-finite-floats)
.
Если вы не хотите устранять проблему, добавьте комментарии к своему результату или коду, чтобы избежать другой проверки. Смотрите Адрес Результаты Polyspace через исправления ошибок или обоснования.
Группа: Поток данных |
Язык: C | C++ |
По умолчанию: On |
Синтаксис командной строки: DEAD_CODE |
Влияние: Низкое |
ИДЕНТИФИКАТОР CWE: 561 |
Code deactivated by constant false condition
| Find defects (-checkers)
| Unreachable code
| Useless if