Проект не должен содержать недостижимый код
Проект не должен содержать недостижимый код.
Если программа не предоставляет неопределенного поведения, недостижимый код не может выполниться. Недостижимый код не может влиять на программу выход. Присутствие недостижимого кода может указать на ошибку в логике программы. Недостижимый код, что компилятор не удаляет ресурсы отходов, например:
Это занимает место в целевой памяти машины.
Ее присутствие может заставить компилятор выбирать дольше, более медленные команды перехода при передаче управления вокруг недостижимого кода.
В цикле это может препятствовать тому, чтобы целый цикл находился в кэше инструкции.
Polyspace® Bug Finder™ и Polyspace Code Prover™ проверяют это правило кодирования по-другому. Исследования могут привести к различным результатам.
Проверка на этапе выполнения Программы автоматического доказательства Кода на недостижимый код показывает больше случаев, чем средство проверки MISRA® для правила 2.1. См. также Unreachable code
(Polyspace Code Prover). Проверка на этапе выполнения выполняет более исчерпывающий анализ. В процессе, проверка может показать некоторые экземпляры, которые не являются строго недостижимым кодом, но недостижимый только в контексте анализа. Например, в следующем коде, проверка на этапе выполнения показывает потенциальное деление на нуль в первой линии и затем удаляет нулевое значение flag
для остальной части анализа. Поэтому это рассматривает if
недостижимый блок.
val=1.0/flag; if(!flag) {}
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: неиспользованный код |
Категория: необходимый |
Категория AGC: необходимый |
Check MISRA C:2012 (-misra3)
| MISRA C:2012 Rule 14.3
| MISRA C:2012 Rule 16.4