Программа не должна содержать нарушений стандартного синтаксиса C и ограничений и не должна превышать пределов перевода реализации
Программа не должна содержать нарушений стандартного синтаксиса C и ограничений и не должна превышать пределов перевода реализации.
Средство проверки правил проверяет наличие следующих проблем. Обратите внимание, что:
Спецификации могут зависеть от версии стандарта C, используемой в анализе. См. C standard version (-c-version)
.
Вы можете изменить некоторые пределы, используемые проверкой с помощью опции -code-behavior-specifications
. См. -code-behavior-specifications
.
Проблема | Стандартная зависимость C | Дополнительная информация |
---|---|---|
Целочисленная константа падает за пределы области значений long int (если константа подписана) или unsigned long int (если константа не подписана). | Проверено только на C90. | Средство проверки правил использует ваши спецификации для размера long int переменная (обычно 32 бита). См. также Target processor type (-target) . |
Используется массив нулевого размера. | Проверено только на C90. | |
Количество макросов, заданное в модуле преобразования, превышает предел, заданный в стандарте. | Количество допустимых определений макросов:
| Проверка правил рассматривает модуль преобразования как исходный файл и заголовочные файлы, включенные прямо или косвенно в исходный файл. |
Глубина вложения в операторы потока управления (например if , while , и т.д.) превышает предел, указанный в стандарте. | Максимально допустимая глубина вложения:
| |
Количество уровней включения, использующих файлы include, превышает предел, указанный в стандарте. | Максимально допустимое количество уровней включения:
| |
Количество представителей структуры или объединения превышает предел, указанный в стандарте. | Максимальное количество представителей в структуре или объединении:
| |
Количество уровней вложенности в структуре превышает предел, заданный в стандарте. | Максимальная глубина вложения:
| |
Количество констант в одном перечислении превышает предел, заданный в стандарте. | Максимально допустимое количество констант перечисления:
| |
Используется оператор языка сборки. | Проверено на все стандарты C. | |
Используется нестандартная директива препроцессора. | Проверено на все стандарты C. | Проверяющий правила флаги использует директивы препроцессора, которые не найдены в стандарте C, например #ident , #alias и #assert . |
Непризнанный текст следует директиве препроцессора. | Проверено на все стандарты C. | Средство проверки правил помечает посторонний текст в соответствии с директивой препроцессора (линия, начинающаяся с #include <header> code |
Стандартные сообщения об ошибке компиляции не приводят к нарушению этого MISRA® правило.
Совет
Чтобы выполнить массовое выравнивание всех результатов, полученных по одной и той же причине, используйте столбец Detail на панели Results List. Щелкните заголовок столбца, чтобы сгруппировать все результаты с одной и той же записью. Выберите первый результат, а затем последний результат при удержании Shift
ключ. Присвойте статус одному из результатов. Если Вы не видите Detail столбец, щелкните правой кнопкой мыши по любому другому заголовку столбца и позвольте этот столбец.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Стандартное окружение C |
Категория: Требуемая |
Категория AGC: Требуется |