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