Вы ожидаете нарушение правила кодирования на строке кода, но анализ Polyspace® не показывает нарушение.
Вы можете искать уменьшаемое подмножество кодирования правил.
Например, если вы проверяете на MISRA C®: 2 012 правил, по умолчанию, анализ ищет mandatory-required
подмножество только.
Проверяйте опции правил кодирования, которые вы используете. См.:
Все нарушения правила кодирования в файле могут быть подавлены.
Например, по умолчанию, кодирующие нарушения правила подавлены от заголовочных файлов, которые не находятся в том же месте как исходные файлы.
Проверяйте файлы, где вы подавляете нарушения правила кодирования. Смотрите Do not generate results for (-do-not-generate-results-for)
.
Нарушение правила происходит в макрорасширении. Чтобы избавить вас от рассмотрения того же нарушения многократно, нарушение показывают на макроопределении вместо макро-использования. Если определение происходит в заголовочном файле, оно может быть подавлено от результатов.
На панели Source можно сказать, содержит ли линия макрорасширение. Ищите значок.
Найдите макроопределение и смотрите, происходит ли оно в заголовочном файле. Определите, подавляете ли вы нарушения правила кодирования от заголовочных файлов. Смотрите Do not generate results for (-do-not-generate-results-for)
.
Для определенных правил нарушение правила может произойти из-за содержимого заголовочного файла. Если вы подавляете тот заголовочный файл от анализа, нарушение правила исчезает.
Например, Правило 1.1 MISRA C:2012 нарушено, если слишком многие макросы заданы в файле. Иногда, макросы не могут быть заданы в самом исходном файле, но в заголовочных файлах, включенных в исходный файл. В этом случае нарушение правила появляется на #include
оператор, который включает незаконный заголовочный файл. Если вы подавляете этот заголовочный файл с помощью опции Do not generate results for (-do-not-generate-results-for)
, нарушение исчезает.
Не подавите заголовочные файлы от кодирования проверки правил и смотрите, появляется ли нарушение правила на #include
оператор. Это указывает, что нарушение происходит, только если заголовочный файл учтен.
Если какой-либо исходный файл в анализе не скомпилирует, то кодирование проверки правил будет неполным. Кодирование управляет результатами средства проверки:
Может не содержать полные результаты для файлов, которые не скомпилировали
Может не содержать полные результаты для файлов, которые действительно компилировали, когда некоторые правила проверяются только после того, как компиляция завершена
Проверяйте на ошибки компиляции. Информация об Ошибке Вида на море, Когда Аналитические Остановки.
Когда вы включаете Ассистенту Компиляции и кодирующей проверке правил, программное обеспечение не сообщает о нарушениях правила кодирования, если существуют ошибки компиляции.
Если при запуске анализ Программы автоматического доказательства Кода, чтобы получить проверку податливости с помощью опции Verification level (-to)
, вы не можете видеть нарушения некоторых правил. Эти правила проверяются на более поздних этапах анализа Программы автоматического доказательства Кода.
Это обоснование применяется к определенным правилам и не применяется к анализу Средства поиска Ошибки. Смотрите Проверку на Кодирование Стандартных Нарушений.
Если вы не видите нарушение одного из тех правил, проверяйте, доходит ли ваш анализ Программы автоматического доказательства Кода до исходной податливости, проверяющей только. Используйте более высокое значение в опции Verification level (-to)
.