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