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