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