exponenta event banner

Неподдерживаемые правила кодирования MISRA C++

Polyspace ® не проверяет следующие правила кодирования MISRA ® C++. Эти правила не проверяются ни в средстве поиска ошибок, ни в средстве проверки кода. Некоторые из этих правил не могут быть применены, поскольку они находятся вне области действия программного обеспечения Polyspace. Правила касаются документации, динамических аспектов или функциональных аспектов правил MISRA.

Список поддерживаемых правил см. в разделе Правила MISRA C++: 2008.

Вопросы, не зависящие от языка

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++.Чтобы соблюдать это правило, проверьте документацию компилятора.

Связанные темы