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