Код не выполнен из-за предыдущих инструкций control-flow
Этот дефект возникает, когда раздел кода не может быть достигнут из-за предыдущего разрыва в потоке управления.
Заявления, такие как break, goto, и returnпереместите поток выполнения программы в другой раздел или функцию. Из-за этого отхода потока операторы, следующие за кодом управляющего потока, статистически не выполняются, и, следовательно, операторы недоступны.
Эта проверка также находит код после тривиальных бесконечных циклов, таких как while(1). Эти типы циклов освобождают поток программы только путем выхода из программы. Этот тип выхода приводит к недоступности кода после бесконечного цикла.
Недостижимый код тратит время разработки, память и циклы выполнения. Разработчики должны поддерживать код, который не выполняется. Команды, которые не выполняются, по-прежнему должны храниться и кэшироваться.
Исправление зависит от предполагаемой функциональности недостижимого кода. Если требуется выполнить код, проверьте размещение кода или предыдущего оператора, который отклоняет поток управления. Например, если недостижимый код следует за return оператор, возможно, придется изменить их порядок или удалить return заявление вообще.
Если вы не хотите устранять проблему, добавьте комментарии к результату или коду, чтобы избежать другой проверки. См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.
| Группа: Поток данных |
| Язык: C | C++ |
| По умолчанию: Вкл. |
Синтаксис командной строки: UNREACHABLE |
| Воздействие: среднее |
| CWE ID: 561 |
Code deactivated by constant false condition | Dead code | Find defects (-checkers) | Useless if