Polyspace® не проверяет следующие MISRA®Правила кодирования C++. Эти правила не проверяются ни в Bug Finder, ни в Code Prover. Некоторые из этих правил не могут быть применены, так как они находятся вне возможностей программного обеспечения Polyspace. Правила касаются документации, динамических аспектов или функциональных аспектов правил MISRA.
Список поддерживаемых правил см. в MISRA C++: 2008 Rules.
N. | Категория | Определение MISRA | Дополнительная информация |
---|---|---|---|
0-1-4 | Необходимый | Проект не должен содержать энергонезависимых переменных POD, имеющих только одно использование. | |
0-1-6 | Необходимый | Проект не должен содержать образцов, когда энергонезависимым переменным присваиваются значения, которые впоследствии никогда не используются. | |
0-1-8 | Необходимый | Все функции с пустым типом возврата должны иметь внешние побочные эффекты. | |
0-3-1 | Необходимый | Минимизация отказов во время работы должна обеспечиваться использованием по крайней мере одного из: (а) инструментов/методов статического анализа; b) инструменты/методы динамического анализа; (c) явное кодирование проверок для обработки отказов во время выполнения. | |
0-3-2 | Необходимый | Если функция генерирует информацию об ошибке, эта информация об ошибке должна быть проверена. | |
0-4-1 | Документ | Использование масштабно-целого или фиксированной арифметики должно быть задокументировано. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
0-4-2 | Документ | Использование арифметики с плавающей точкой должно быть задокументировано. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
0-4-3 | Документ | Реализации с плавающей точкой должны соответствовать определенному стандарту с плавающей точкой. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
N. | Категория | Определение MISRA | Дополнительная информация |
---|---|---|---|
1-0-2 | Документ | Несколько компиляторов должны использоваться только в том случае, если они имеют общий, определенный интерфейс. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
1-0-3 | Документ | Реализация целочисленного деления в выбранном компиляторе определяется и документируется. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
N. | Категория | Определение MISRA | Дополнительная информация |
---|---|---|---|
2-2-1 | Документ | Набор символов и соответствующая кодировка должны быть задокументированы. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
N. | Категория | Определение MISRA | Дополнительная информация |
---|---|---|---|
5-0-16 | Необходимый | Операнд указателя и любой указатель, полученный из арифметики указателя, использующей этот операнд, должны оба адресовать элементы одного массива. | |
5-17-1 | Необходимый | Семантическая эквивалентность между двоичным оператором и его формой оператора назначения должна быть сохранена. |
N. | Определение MISRA | Дополнительная информация | |
---|---|---|---|
7-2-1 | Необходимый | Выражение с базовым типом перечисления должно иметь только значения, соответствующие перечислителям перечисления. | |
7-4-1 | Документ | Все виды использования ассемблера должны быть задокументированы. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
N. | Категория | Определение MISRA | Дополнительная информация |
---|---|---|---|
9-6-1 | Документ | Когда требуется абсолютное позиционирование бит, представляющих битовое поле, то должно быть задокументировано поведение и упаковка битовых полей. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
N. | Определение MISRA | Дополнительная информация | |
---|---|---|---|
14-5-1 | Необходимый | Универсальная функция, не являющаяся членом, должна быть объявлена только в пространстве имен, которое не является связанным пространством имен. | |
14-7-1 | Необходимый | Все шаблоны классов, шаблоны функций, функции представителей шаблонов классов и статические представители шаблонов классов должны создаваться по крайней мере один раз. | |
14-7-2 | Необходимый | Для любой конкретной специализации шаблона явный экземпляр шаблона с шаблоном-аргументами, используемыми в специализации, не делает программу плохо сформированной. |
N. | Категория | Определение MISRA | Дополнительная информация |
---|---|---|---|
15-0-1 | Документ | Исключения должны использоваться только для обработки ошибок. | Чтобы соблюдать это правило, проверьте документацию компилятора. |
15-1-1 | Необходимый | Выражение назначения оператора throw само по себе не должно вызывать выдачу исключения. | |
15-3-1 | Необходимый | Исключения должны быть высказаны только после запуска и до окончания программы. | |
15-3-4 | Необходимый | Каждое исключение, явно выданное в коде, должно иметь обработчик совместимого типа во всех путях вызова, который может привести к этой точке. |
N. | Категория | Определение MISRA | Дополнительная информация |
---|---|---|---|
17-0-3 | Необходимый | Имена стандартных библиотечных функций не должны переопределяться. | |
17-0-4 | Необходимый | Все библиотечные коды должны соответствовать MISRA C++. | Чтобы соблюдать это правило, проверьте документацию компилятора. |