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