MISRA C ++:2008 стандартов классифицирует правила, что совместимый Код С++ должен следовать как требуется. Polyspace® Bug Finder поддерживает 192 из 198, потребовал MISRA C ++:2008 правил кодирования.
Polyspace поддерживает эти Необходимые правила.
MISRA C ++:2008 правил | Описание | Средство проверки Polyspace |
---|---|---|
MISRA C ++:2008 правил 0-1-1 | Проект не должен содержать недостижимый код | MISRA C++:2008 Rule 0-1-1 |
MISRA C ++:2008 правил 0-1-10 | Каждая заданная функция должна быть вызвана, по крайней мере, однажды | MISRA C++:2008 Rule 0-1-10 |
MISRA C ++:2008 правил 0-1-11 | Не должно быть никаких неиспользованных параметров (названы или без имени) в невиртуальных функциях | MISRA C++:2008 Rule 0-1-11 |
MISRA C ++:2008 правил 0-1-12 | Не должно быть никаких неиспользованных параметров (названы или без имени) в наборе параметров для виртуальной функции и всех функций, которые заменяют его | MISRA C++:2008 Rule 0-1-12 |
MISRA C ++:2008 правил 0-1-2 | Проект не должен содержать неосуществимые пути | MISRA C++:2008 Rule 0-1-2 |
MISRA C ++:2008 правил 0-1-3 | Проект не должен содержать неиспользуемые переменные | MISRA C++:2008 Rule 0-1-3 |
MISRA C ++:2008 правил 0-1-4 | Проект не должен содержать энергонезависимые переменные POD, имеющие только одно использование | MISRA C++:2008 Rule 0-1-4 |
MISRA C ++:2008 правил 0-1-5 | Проект не должен содержать неиспользованные описания типа | MISRA C++:2008 Rule 0-1-5 |
MISRA C ++:2008 правил 0-1-7 | Значение, возвращенное функцией, имеющей не - пустой тип возврата, который не является перегруженным оператором, должно всегда использоваться | MISRA C++:2008 Rule 0-1-7 |
MISRA C ++:2008 правил 0-1-9 | Не должно быть никакого мертвого кода | MISRA C++:2008 Rule 0-1-9 |
MISRA C ++:2008 правил 0-2-1 | Объект не должен быть присвоен перекрывающемуся объекту | MISRA C++:2008 Rule 0-2-1 |
MISRA C ++:2008 правил 0-3-2 | Если функция сгенерирует информацию об ошибке, то та информация об ошибке должна быть протестирована | MISRA C++:2008 Rule 0-3-2 |
MISRA C ++:2008 правил 10-1-2 | Базовый класс должен только быть объявлен виртуальный, если он будет использоваться в ромбовидной иерархии | MISRA C++:2008 Rule 10-1-2 |
MISRA C ++:2008 правил 10-1-3 | Доступный базовый класс не должен быть и виртуальным и невиртуальным в той же иерархии | MISRA C++:2008 Rule 10-1-3 |
MISRA C ++:2008 правил 10-3-1 | Должно быть не больше, чем одно определение каждой виртуальной функции на каждом пути через иерархию наследования | MISRA C++:2008 Rule 10-3-1 |
MISRA C ++:2008 правил 10-3-2 | Каждая переопределяющая виртуальная функция должна быть объявлена с виртуальным ключевым словом | MISRA C++:2008 Rule 10-3-2 |
MISRA C ++:2008 правил 10-3-3 | Виртуальная функция должна только быть заменена чистой виртуальной функцией, если она будет самостоятельно объявлена как чистая виртуальная | MISRA C++:2008 Rule 10-3-3 |
MISRA C ++:2008 правил 11-0-1 | Данные члена в не - типы классов POD должны быть частными | MISRA C++:2008 Rule 11-0-1 |
MISRA C ++:2008 правил 12-1-1 | Динамический тип объекта не должен использоваться от тела его конструктора или деструктора | MISRA C++:2008 Rule 12-1-1 |
MISRA C ++:2008 правил 12-1-3 | Все конструкторы, которые являются вызываемыми с отдельным аргументом фундаментального типа, должны быть объявлены явные | MISRA C++:2008 Rule 12-1-3 |
MISRA C ++:2008 правил 12-8-1 | Конструктор копии должен только инициализировать ее базовые классы и не - статические члены класса, которого это - член | MISRA C++:2008 Rule 12-8-1 |
MISRA C ++:2008 правил 12-8-2 | Оператор присваивания копии должен быть объявлен защищенный или частный в абстрактном классе | MISRA C++:2008 Rule 12-8-2 |
MISRA C ++:2008 правил 14-5-1 | Родовая функция лица, не являющегося членом какой-либо организации, должна только быть объявлена в пространстве имен, которое не является связанным пространством имен | MISRA C++:2008 Rule 14-5-1 |
MISRA C ++:2008 правил 14-5-2 | Конструктор копии должен быть объявлен, когда будет конструктор шаблона одним параметром, который является типовым параметром | MISRA C++:2008 Rule 14-5-2 |
MISRA C ++:2008 правил 14-5-3 | Оператор присваивания копии должен быть объявлен, когда будет оператор присваивания шаблона параметром, который является типовым параметром | MISRA C++:2008 Rule 14-5-3 |
MISRA C ++:2008 правил 14-6-1 | В шаблоне класса с зависимой основой любое имя, которое может быть найдено в той зависимой основе, должно быть отнесено в использование квалифицированного ID или этого-> | MISRA C++:2008 Rule 14-6-1 |
MISRA C ++:2008 правил 14-6-2 | Функция, выбранная разрешением перегрузки, должна решить к функции, объявленной ранее в модуле перевода | MISRA C++:2008 Rule 14-6-2 |
MISRA C ++:2008 правил 14-7-3 | Все частичные и явные специализации для шаблона должны быть объявлены в том же файле как объявление их первичного шаблона | MISRA C++:2008 Rule 14-7-3 |
MISRA C ++:2008 правил 14-8-1 | Шаблоны перегруженной функции не должны быть явным образом специализированы | MISRA C++:2008 Rule 14-8-1 |
MISRA C ++:2008 правил 15-0-3 | Управление не должно быть передано в попытку или блок выгоды с помощью goto или оператора switch | MISRA C++:2008 Rule 15-0-3 |
MISRA C ++:2008 правил 15-1-1 | Выражение присваивания оператора броска не должно самостоятельно заставлять исключение быть выданным | MISRA C++:2008 Rule 15-1-1 |
MISRA C ++:2008 правил 15-1-2 | NULL не должен быть выдан явным образом | MISRA C++:2008 Rule 15-1-2 |
MISRA C ++:2008 правил 15-1-3 | Пустой бросок (бросок;) буду только использоваться в составном операторе обработчика выгоды | MISRA C++:2008 Rule 15-1-3 |
MISRA C ++:2008 правил 15-3-1 | Исключения должны быть повышены только после запуска и перед завершением программы | MISRA C++:2008 Rule 15-3-1 |
MISRA C ++:2008 правил 15-3-3 | Обработчики реализации функционального блока попытки конструктора класса или деструктора не должны ссылаться на нестатические члены от этого класса или его основ | MISRA C++:2008 Rule 15-3-3 |
MISRA C ++:2008 правил 15-3-4 | Каждое исключение, явным образом добавленное, код должен иметь обработчик совместимого типа во всех путях к вызову, которые могли привести к той точке | MISRA C++:2008 Rule 15-3-4 |
MISRA C ++:2008 правил 15-3-5 | Исключение типа класса должно всегда отлавливаться ссылкой | MISRA C++:2008 Rule 15-3-5 |
MISRA C ++:2008 правил 15-3-6 | Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки для производного класса, и некоторые или все его основы, обработчики должны быть упорядочены наиболее выведенные базовому классу | MISRA C++:2008 Rule 15-3-6 |
MISRA C ++:2008 правил 15-3-7 | Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки, любой замещающий знак (вместилище), обработчик должен произойти в последний раз | MISRA C++:2008 Rule 15-3-7 |
MISRA C ++:2008 правил 15-4-1 | Если функция будет объявлена со спецификацией исключения, то все объявления той же функции (в других модулях перевода) должны быть объявлены с тем же набором идентификаторов типов | MISRA C++:2008 Rule 15-4-1 |
MISRA C ++:2008 правил 15-5-1 | Деструктор класса не должен выходить за исключением | MISRA C++:2008 Rule 15-5-1 |
MISRA C ++:2008 правил 15-5-2 | Где объявление функции включает спецификацию исключения, функция должна только быть способна к выдаванию исключения обозначенного типа (типов) | MISRA C++:2008 Rule 15-5-2 |
MISRA C ++:2008 правил 15-5-3 | Оконечное () функция не должно быть названо неявно | MISRA C++:2008 Rule 15-5-3 |
MISRA C ++:2008 правил 16-0-1 | Директивам #include в файле должны только предшествовать другие директивы препроцессору или комментарии | MISRA C++:2008 Rule 16-0-1 |
MISRA C ++:2008 правил 16-0-2 | Макросы должны только быть #define 'd или #undef 'd в глобальном пространстве имен | MISRA C++:2008 Rule 16-0-2 |
MISRA C ++:2008 правил 16-0-3 | #undef не должен использоваться | MISRA C++:2008 Rule 16-0-3 |
MISRA C ++:2008 правил 16-0-4 | Подобные функции макросы не должны быть заданы | MISRA C++:2008 Rule 16-0-4 |
MISRA C ++:2008 правил 16-0-5 | Аргументы к подобному функции макросу не должны содержать лексемы, которые похожи на предварительную обработку директив | MISRA C++:2008 Rule 16-0-5 |
MISRA C ++:2008 правил 16-0-6 | В определении подобного функции макроса каждый экземпляр параметра должен быть заключен в круглые скобки, если это не будет использоваться в качестве операнда # или ## | MISRA C++:2008 Rule 16-0-6 |
MISRA C ++:2008 правил 16-0-7 | Неопределенные макро-идентификаторы не должны использоваться в #if или #elif директивах препроцессору, за исключением операндов к заданному оператору | MISRA C++:2008 Rule 16-0-7 |
MISRA C ++:2008 правил 16-0-8 | Если # лексема появится как первая лексема на линии, то это должно сразу сопровождаться лексемой предварительной обработки | MISRA C++:2008 Rule 16-0-8 |
MISRA C ++:2008 правил 16-1-1 | Заданный оператор препроцессора должен только использоваться в одной из двух стандартных форм | MISRA C++:2008 Rule 16-1-1 |
MISRA C ++:2008 правил 16-1-2 | Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if или #ifdef директива, с которой они связаны | MISRA C++:2008 Rule 16-1-2 |
MISRA C ++:2008 правил 16-2-1 | Препроцессор должен только использоваться для включения файла и включать защиту | MISRA C++:2008 Rule 16-2-1 |
MISRA C ++:2008 правил 16-2-2 | Макросы C++ должны только использоваться для: включайте защиту, введите спецификаторы или спецификаторы класса памяти | MISRA C++:2008 Rule 16-2-2 |
MISRA C ++:2008 правил 16-2-3 | Включайте защиту, буду обеспечен | MISRA C++:2008 Rule 16-2-3 |
MISRA C ++:2008 правил 16-2-4 | ', ",/* или//символы не должны происходить на имя заголовочного файла | MISRA C++:2008 Rule 16-2-4 |
MISRA C ++:2008 правил 16-2-6 | #include директива должна сопровождаться или <имя файла> или последовательность "имени файла" | MISRA C++:2008 Rule 16-2-6 |
MISRA C ++:2008 правил 16-3-1 | Должно быть самое большее одно вхождение # или ## операторов в одном макроопределении | MISRA C++:2008 Rule 16-3-1 |
MISRA C ++:2008 правил 17-0-1 | Зарезервированные идентификаторы, макросы и функции в Стандартной Библиотеке не должны быть заданы, переопределены или не определены | MISRA C++:2008 Rule 17-0-1 |
MISRA C ++:2008 правил 17-0-2 | Имена стандартных макросов библиотеки и объектов не должны быть снова использованы | MISRA C++:2008 Rule 17-0-2 |
MISRA C ++:2008 правил 17-0-3 | Имена стандартных библиотечных функций не должны быть заменены | MISRA C++:2008 Rule 17-0-3 |
MISRA C ++:2008 правил 17-0-5 | setjmp макрос и функция longjmp не должны использоваться | MISRA C++:2008 Rule 17-0-5 |
MISRA C ++:2008 правил 18-0-1 | Библиотекой C нельзя пользоваться | MISRA C++:2008 Rule 18-0-1 |
MISRA C ++:2008 правил 18-0-2 | Библиотечные функции atof, atoi и атолл от библиотеки <cstdlib> не должны использоваться | MISRA C++:2008 Rule 18-0-2 |
MISRA C ++:2008 правил 18-0-3 | Аварийное прекращение работы библиотечных функций, выход, getenv и система от библиотеки <cstdlib> не должны использоваться | MISRA C++:2008 Rule 18-0-3 |
MISRA C ++:2008 правил 18-0-4 | Функции обработки времени библиотеки <ctime> не должны использоваться | MISRA C++:2008 Rule 18-0-4 |
MISRA C ++:2008 правил 18-0-5 | Неограниченные функции библиотеки <cstring> не должны использоваться | MISRA C++:2008 Rule 18-0-5 |
MISRA C ++:2008 правил 18-2-1 | Макрос offsetof не должен использоваться | MISRA C++:2008 Rule 18-2-1 |
MISRA C ++:2008 правил 18-4-1 | Динамическое выделение памяти кучи не должно использоваться | MISRA C++:2008 Rule 18-4-1 |
MISRA C ++:2008 правил 18-7-1 | Погрузочно-разгрузочное оборудование сигнала <csignal> не должно использоваться | MISRA C++:2008 Rule 18-7-1 |
MISRA C ++:2008 правил 19-3-1 | Ошибочный индикатор errno не должен использоваться | MISRA C++:2008 Rule 19-3-1 |
MISRA C ++:2008 правил 1-0-1 | Весь код должен соответствовать ISO/IEC 14882:2003 "Стандарт C++ Слияние Технического Исправления 1" | MISRA C++:2008 Rule 1-0-1 |
MISRA C ++:2008 правил 27-0-1 | Потоковый ввод / выходная библиотека <cstdio> не должен использоваться | MISRA C++:2008 Rule 27-0-1 |
MISRA C ++:2008 правил 2-10-1 | Различные идентификаторы должны быть типографским способом однозначными | MISRA C++:2008 Rule 2-10-1 |
MISRA C ++:2008 правил 2-10-2 | Идентификаторы, объявленные во внутреннем осциллографе, не должны скрывать идентификатор, объявленный во внешнем осциллографе | MISRA C++:2008 Rule 2-10-2 |
MISRA C ++:2008 правил 2-10-3 | Имя определения типа (включая проверку, если таковые имеются) должно быть уникальным идентификатором | MISRA C++:2008 Rule 2-10-3 |
MISRA C ++:2008 правил 2-10-4 | Класс, объединение или перечислимое имя (включая проверку, если таковые имеются) должны быть уникальным идентификатором | MISRA C++:2008 Rule 2-10-4 |
MISRA C ++:2008 правил 2-10-6 | Если идентификатор будет относиться к типу, он не должен также относиться к объекту или функции в том же осциллографе | MISRA C++:2008 Rule 2-10-6 |
MISRA C ++:2008 правил 2-13-1 | Только те escape-последовательности, которые заданы в ISO/IEC 14882:2003, должны использоваться | MISRA C++:2008 Rule 2-13-1 |
MISRA C ++:2008 правил 2-13-2 | Восьмеричные константы (кроме нуля) и восьмеричные escape-последовательности (кроме "\0") не должны использоваться | MISRA C++:2008 Rule 2-13-2 |
MISRA C ++:2008 правил 2-13-3 | Суффикс "U" должен быть применен ко всем восьмеричным или шестнадцатеричным целочисленным литералам типа без знака | MISRA C++:2008 Rule 2-13-3 |
MISRA C ++:2008 правил 2-13-4 | Литеральные суффиксы должны быть верхним регистром | MISRA C++:2008 Rule 2-13-4 |
MISRA C ++:2008 правил 2-13-5 | Узкие и широкие строковые литералы не должны быть конкатенированы | MISRA C++:2008 Rule 2-13-5 |
MISRA C ++:2008 правил 2-3-1 | Trigraphs не должен использоваться | MISRA C++:2008 Rule 2-3-1 |
MISRA C ++:2008 правил 2-7-1 | Последовательность символов/* не должна использоваться в рамках комментария C-стиля | MISRA C++:2008 Rule 2-7-1 |
MISRA C ++:2008 правил 2-7-2 | Разделы кода не должны быть то, " закомментировал" использование комментариев C-стиля | MISRA C++:2008 Rule 2-7-2 |
MISRA C ++:2008 правил 3-1-1 | Должно быть возможно включать любой заголовочный файл в несколько модулей перевода, не нарушая Одно Правило Определения | MISRA C++:2008 Rule 3-1-1 |
MISRA C ++:2008 правил 3-1-2 | Функции не должны быть объявлены в области действия блока | MISRA C++:2008 Rule 3-1-2 |
MISRA C ++:2008 правил 3-1-3 | Когда массив будет объявлен, его размер должен или быть утвержден явным образом или задан неявно инициализацией | MISRA C++:2008 Rule 3-1-3 |
MISRA C ++:2008 правил 3-2-1 | Все объявления объекта или функции должны иметь совместимые типы | MISRA C++:2008 Rule 3-2-1 |
MISRA C ++:2008 правил 3-2-2 | Одно Правило Определения не должно быть нарушено | MISRA C++:2008 Rule 3-2-2 |
MISRA C ++:2008 правил 3-2-3 | Тип, объект или функция, которая используется в нескольких модулях перевода, должны быть объявлены в одном и только одном файле | MISRA C++:2008 Rule 3-2-3 |
MISRA C ++:2008 правил 3-2-4 | Идентификатор с внешним рычажным устройством должен иметь точно одно определение | MISRA C++:2008 Rule 3-2-4 |
MISRA C ++:2008 правил 3-3-1 | Объекты или функции с внешним рычажным устройством должны быть объявлены в заголовочном файле | MISRA C++:2008 Rule 3-3-1 |
MISRA C ++:2008 правил 3-3-2 | Если функция будет иметь внутреннее рычажное устройство затем, то все переобъявления должны включать статический спецификатор класса памяти | MISRA C++:2008 Rule 3-3-2 |
MISRA C ++:2008 правил 3-4-1 | Идентификатор, который, как объявляют, был объектом или типом, должен быть задан в блоке, который минимизирует его видимость | MISRA C++:2008 Rule 3-4-1 |
MISRA C ++:2008 правил 3-9-1 | Типы, используемые для объекта, функционального типа возврата или параметра функции, должны быть лексемой для лексемы, идентичной во всех объявлениях и переобъявлениях | MISRA C++:2008 Rule 3-9-1 |
MISRA C ++:2008 правил 3-9-3 | Базовые битные представления значений с плавающей точкой не должны использоваться | MISRA C++:2008 Rule 3-9-3 |
MISRA C ++:2008 правил 4-10-1 | NULL не должен использоваться в качестве целочисленного значения | MISRA C++:2008 Rule 4-10-1 |
MISRA C ++:2008 правил 4-10-2 | Литеральный нуль (0) не должен использоваться в качестве постоянного нулевым указателем | MISRA C++:2008 Rule 4-10-2 |
MISRA C ++:2008 правил 4-5-1 | Выражения с типом bool не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, логические операторы &&, ||!, операторы равенства == и! =, унарное & оператор и условный оператор | MISRA C++:2008 Rule 4-5-1 |
MISRA C ++:2008 правил 4-5-2 | Выражения с перечислением типа не должны использоваться в качестве операндов к созданному - в операторах кроме оператора индекса [], оператор присваивания =, операторы равенства == и! =, унарное & оператор и операторы отношения <<=>,> = | MISRA C++:2008 Rule 4-5-2 |
MISRA C ++:2008 правил 4-5-3 | Выражения с типом (простой) char и wchar_t не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, операторы равенства == и! =, и унарное & оператор N | MISRA C++:2008 Rule 4-5-3 |
MISRA C ++:2008 правил 5-0-1 | Значение выражения должно быть тем же самым согласно любому порядку оценки, которую разрешает стандарт | MISRA C++:2008 Rule 5-0-1 |
MISRA C ++:2008 правил 5-0-10 | Если побитовые операторы ~ и <<будут применены к операнду с базовым типом символьного или короткого целого без знака без знака, результат должен быть сразу брошен к базовому типу операнда | MISRA C++:2008 Rule 5-0-10 |
MISRA C ++:2008 правил 5-0-11 | Простой символьный тип должен только использоваться для устройства хранения данных и использования символьных значений | MISRA C++:2008 Rule 5-0-11 |
MISRA C ++:2008 правил 5-0-12 | Символ со знаком и символьный тип без знака должны только использоваться для устройства хранения данных и использования числовых значений | MISRA C++:2008 Rule 5-0-12 |
MISRA C ++:2008 правил 5-0-13 | Условие оператора "if" и условие оператора цикла должны иметь тип bool | MISRA C++:2008 Rule 5-0-13 |
MISRA C ++:2008 правил 5-0-14 | Первый операнд условного оператора должен иметь тип bool | MISRA C++:2008 Rule 5-0-14 |
MISRA C ++:2008 правил 5-0-15 | Индексация массива должна быть единственной формой адресной арифметики с указателями | MISRA C++:2008 Rule 5-0-15 |
MISRA C ++:2008 правил 5-0-16 | Операнд указателя и любой указатель, следующий из адресной арифметики с указателями с помощью того операнда, должны оба обратиться к элементам того же массива. | MISRA C++:2008 Rule 5-0-16 |
MISRA C ++:2008 правил 5-0-17 | Вычитание между указателями должно только быть применено к указателям, которые обращаются к элементам того же массива | MISRA C++:2008 Rule 5-0-17 |
MISRA C ++:2008 правил 5-0-18 | >,> =, <<= не буду применен к объектам типа указателя, кроме того, где они указывают на тот же массив | MISRA C++:2008 Rule 5-0-18 |
MISRA C ++:2008 правил 5-0-19 | Объявление объектов должно содержать не больше, чем два уровня косвенности указателя | MISRA C++:2008 Rule 5-0-19 |
MISRA C ++:2008 правил 5-0-20 | Непостоянные операнды к бинарному побитовому оператору должны иметь тот же базовый тип | MISRA C++:2008 Rule 5-0-20 |
MISRA C ++:2008 правил 5-0-21 | Побитовые операторы должны только быть применены к операндам базового типа без знака | MISRA C++:2008 Rule 5-0-21 |
MISRA C ++:2008 правил 5-0-3 | cvalue выражение не должно быть неявно преобразовано в различный базовый тип | MISRA C++:2008 Rule 5-0-3 |
MISRA C ++:2008 правил 5-0-4 | Неявное интегральное преобразование не должно изменять со знаком из базового типа | MISRA C++:2008 Rule 5-0-4 |
MISRA C ++:2008 правил 5-0-5 | Не должно быть никаких неявных интегральных плаванием преобразований | MISRA C++:2008 Rule 5-0-5 |
MISRA C ++:2008 правил 5-0-6 | Неявное интегральное или преобразование с плавающей точкой не должно уменьшать размер базового типа | MISRA C++:2008 Rule 5-0-6 |
MISRA C ++:2008 правил 5-0-7 | Не должно быть никаких явных интегральных плаванием преобразований cvalue выражения | MISRA C++:2008 Rule 5-0-7 |
MISRA C ++:2008 правил 5-0-8 | Явное интегральное или преобразование с плавающей точкой не должно увеличивать размер базового типа cvalue выражения | MISRA C++:2008 Rule 5-0-8 |
MISRA C ++:2008 правил 5-0-9 | Явное интегральное преобразование не должно изменять со знаком из базового типа cvalue выражения | MISRA C++:2008 Rule 5-0-9 |
MISRA C ++:2008 правил 5-14-1 | Правый операнд логического && или || оператор не должен содержать побочные эффекты | MISRA C++:2008 Rule 5-14-1 |
MISRA C ++:2008 правил 5-18-1 | Оператор запятой не должен использоваться | MISRA C++:2008 Rule 5-18-1 |
MISRA C ++:2008 правил 5-2-1 | Каждый операнд логического && или || должен быть постфиксным выражением | MISRA C++:2008 Rule 5-2-1 |
MISRA C ++:2008 правил 5-2-11 | Оператор запятой, && оператор и || оператор не должен быть перегружен | MISRA C++:2008 Rule 5-2-11 |
MISRA C ++:2008 правил 5-2-12 | Идентификатор с типом массива, переданным как аргумент функции, не должен затухать к указателю | MISRA C++:2008 Rule 5-2-12 |
MISRA C ++:2008 правил 5-2-2 | Указатель на виртуальный базовый класс должен только быть брошен к указателю на производный класс посредством dynamic_cast | MISRA C++:2008 Rule 5-2-2 |
MISRA C ++:2008 правил 5-2-4 | Броски C-стиля (кроме пустых бросков) и функциональных бросков обозначения (кроме вызовов явного конструктора) не должны использоваться | MISRA C++:2008 Rule 5-2-4 |
MISRA C ++:2008 правил 5-2-5 | Бросок не должен удалять const или энергозависимую проверку от типа указателя или ссылки | MISRA C++:2008 Rule 5-2-5 |
MISRA C ++:2008 правил 5-2-6 | Бросок не должен преобразовывать указатель на функцию ни к какому другому типу указателя, включая указатель на функциональный тип | MISRA C++:2008 Rule 5-2-6 |
MISRA C ++:2008 правил 5-2-7 | Объект с типом указателя не должен быть преобразован в несвязанный тип указателя, ни один прямо или косвенно | MISRA C++:2008 Rule 5-2-7 |
MISRA C ++:2008 правил 5-2-8 | Объект с целочисленным типом или указателем, чтобы освободить тип не должен быть преобразован в объект с типом указателя | MISRA C++:2008 Rule 5-2-8 |
MISRA C ++:2008 правил 5-3-1 | Каждый операнд! оператор, логический && или логическое || операторы должны иметь тип bool | MISRA C++:2008 Rule 5-3-1 |
MISRA C ++:2008 правил 5-3-2 | Оператор унарный минус не должен быть применен к выражению, базовый тип которого без знака | MISRA C++:2008 Rule 5-3-2 |
MISRA C ++:2008 правил 5-3-3 | Унарное & оператор не должны быть перегружены | MISRA C++:2008 Rule 5-3-3 |
MISRA C ++:2008 правил 5-3-4 | Оценка операнда к sizeof оператору не должна содержать побочные эффекты | MISRA C++:2008 Rule 5-3-4 |
MISRA C ++:2008 правил 5-8-1 | Правый операнд оператора сдвига должен находиться между нулем и меньше, чем ширина в битах базового типа левого операнда | MISRA C++:2008 Rule 5-8-1 |
MISRA C ++:2008 правил 6-2-1 | Операторы присваивания не должны использоваться в подвыражениях | MISRA C++:2008 Rule 6-2-1 |
MISRA C ++:2008 правил 6-2-2 | Выражения с плавающей точкой не должны быть прямо или косвенно протестированы на равенство или неравенство | MISRA C++:2008 Rule 6-2-2 |
MISRA C ++:2008 правил 6-2-3 | Перед предварительной обработкой пустой оператор должен только произойти на линии отдельно; это может сопровождаться комментарием, при условии, что первый символ после пустого оператора является белым - пробел | MISRA C++:2008 Rule 6-2-3 |
MISRA C ++:2008 правил 6-3-1 | Оператор, формирующий тело переключателя, в то время как, делает, в то время как или для оператора будет составной оператор | MISRA C++:2008 Rule 6-3-1 |
MISRA C ++:2008 правил 6-4-1 | Если (условие) создают, еще буду сопровождаться составным оператором, ключевое слово должно сопровождаться или составным оператором или другим оператором if | MISRA C++:2008 Rule 6-4-1 |
MISRA C ++:2008 правил 6-4-2 | Все, если еще, если построения должны быть отключены с выражением else | MISRA C++:2008 Rule 6-4-2 |
MISRA C ++:2008 правил 6-4-3 | Оператор switch должен быть правильно построенным оператором switch | MISRA C++:2008 Rule 6-4-3 |
MISRA C ++:2008 правил 6-4-4 | Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switch | MISRA C++:2008 Rule 6-4-4 |
MISRA C ++:2008 правил 6-4-5 | Безусловный бросок или оператор завершения должны отключить каждый не - пустой пункт переключателя | MISRA C++:2008 Rule 6-4-5 |
MISRA C ++:2008 правил 6-4-6 | Итоговый пункт оператора switch должен быть пунктом по умолчанию | MISRA C++:2008 Rule 6-4-6 |
MISRA C ++:2008 правил 6-4-7 | Условие оператора switch не должно иметь типа bool | MISRA C++:2008 Rule 6-4-7 |
MISRA C ++:2008 правил 6-4-8 | Каждый оператор switch должен иметь по крайней мере один пункт случая | MISRA C++:2008 Rule 6-4-8 |
MISRA C ++:2008 правил 6-5-1 | Цикл for должен содержать один счетчик цикла, который не должен иметь типа с плавающей точкой | MISRA C++:2008 Rule 6-5-1 |
MISRA C ++:2008 правил 6-5-2 | Если счетчик цикла не будет изменен - или ++, то в условии счетчик цикла должен только использоваться в качестве операнда к <=, <> или> = | MISRA C++:2008 Rule 6-5-2 |
MISRA C ++:2008 правил 6-5-3 | Счетчик цикла не должен быть изменен в условии или операторе | MISRA C++:2008 Rule 6-5-3 |
MISRA C ++:2008 правил 6-5-4 | Счетчик цикла должен быть изменен одним из: - ++, - =n, или + =n; где n остается постоянным на время цикла | MISRA C++:2008 Rule 6-5-4 |
MISRA C ++:2008 правил 6-5-5 | Контрольная переменная цикла кроме счетчика цикла не должна быть изменена в условии или выражении | MISRA C++:2008 Rule 6-5-5 |
MISRA C ++:2008 правил 6-5-6 | Контрольная переменная цикла кроме счетчика цикла, который изменяется в операторе, должна иметь тип bool | MISRA C++:2008 Rule 6-5-6 |
MISRA C ++:2008 правил 6-6-1 | Любая метка, на которую ссылается оператор перехода, должна быть объявлена в том же блоке, или в блоке, заключающем оператор перехода | MISRA C++:2008 Rule 6-6-1 |
MISRA C ++:2008 правил 6-6-2 | Оператор перехода должен перейти к метке, объявленной позже в том же теле функции | MISRA C++:2008 Rule 6-6-2 |
MISRA C ++:2008 правил 6-6-3 | Оператор continue должен только использоваться в правильно построенном цикле for | MISRA C++:2008 Rule 6-6-3 |
MISRA C ++:2008 правил 6-6-4 | Для любого оператора цикла должен быть не больше, чем один оператор завершения, или оператор перехода использовал завершение цикла for | MISRA C++:2008 Rule 6-6-4 |
MISRA C ++:2008 правил 6-6-5 | Функция должна иметь одну точку выхода в конце функции | MISRA C++:2008 Rule 6-6-5 |
MISRA C ++:2008 правил 7-1-1 | Переменная, которая не изменяется, должна быть квалифицированным const | MISRA C++:2008 Rule 7-1-1 |
MISRA C ++:2008 правил 7-1-2 | Указатель или параметр ссылки в функции должны быть объявлены как указатель на const или ссылка на const, если соответствующий объект не будет изменен | MISRA C++:2008 Rule 7-1-2 |
MISRA C ++:2008 правил 7-3-1 | Глобальное пространство имен должно только содержать основные, объявления пространства имен и экстерна "C" объявления | MISRA C++:2008 Rule 7-3-1 |
MISRA C ++:2008 правил 7-3-2 | Основной идентификатор не должен использоваться для функции кроме глобального функционального основного | MISRA C++:2008 Rule 7-3-2 |
MISRA C ++:2008 правил 7-3-3 | В заголовочных файлах не должно быть никаких пространств имен без имени | MISRA C++:2008 Rule 7-3-3 |
MISRA C ++:2008 правил 7-3-4 | директивы использования не должны использоваться | MISRA C++:2008 Rule 7-3-4 |
MISRA C ++:2008 правил 7-3-5 | Многократные объявления для идентификатора в том же пространстве имен не должны колебаться между объявлением использования для того идентификатора | MISRA C++:2008 Rule 7-3-5 |
MISRA C ++:2008 правил 7-3-6 | директивы использования и объявления использования (исключая осциллограф класса или функциональные объявления использования осциллографа) не должны использоваться в заголовочных файлах | MISRA C++:2008 Rule 7-3-6 |
MISRA C ++:2008 правил 7-4-2 | Ассемблерные инструкции должны только быть введены с помощью asm объявления | MISRA C++:2008 Rule 7-4-2 |
MISRA C ++:2008 правил 7-4-3 | Ассемблер должен инкапсулироваться и изолироваться | MISRA C++:2008 Rule 7-4-3 |
MISRA C ++:2008 правил 7-5-1 | Функция не должна возвращать ссылку или указатель на автоматическую переменную (включая параметры), заданный в функции | MISRA C++:2008 Rule 7-5-1 |
MISRA C ++:2008 правил 7-5-2 | Адрес объекта с автоматическим хранением не должен быть присвоен другому объекту, который может сохраниться после того, как первый объект прекратил существование | MISRA C++:2008 Rule 7-5-2 |
MISRA C ++:2008 правил 7-5-3 | Функция не должна возвращать ссылку или указатель на параметр, который передается ссылкой const или ссылкой | MISRA C++:2008 Rule 7-5-3 |
MISRA C ++:2008 правил 8-0-1 | Init-declarator-list или список оператора объявления члена должны состоять из одного init-оператора-объявления или оператора объявления члена соответственно | MISRA C++:2008 Rule 8-0-1 |
MISRA C ++:2008 правил 8-3-1 | Параметры в переопределяющей виртуальной функции должны или использовать те же параметры по умолчанию в качестве функции, которую они заменяют или иначе не должны задавать параметры по умолчанию | MISRA C++:2008 Rule 8-3-1 |
MISRA C ++:2008 правил 8-4-1 | Функции не должны быть заданы с помощью обозначения замещающего знака | MISRA C++:2008 Rule 8-4-1 |
MISRA C ++:2008 правил 8-4-2 | Идентификаторы, используемые для параметров в переобъявлении функции, должны быть идентичны тем в объявлении | MISRA C++:2008 Rule 8-4-2 |
MISRA C ++:2008 правил 8-4-3 | Все выходные пути от функции с не - пустой тип возврата должны иметь явный оператор возврата с выражением | MISRA C++:2008 Rule 8-4-3 |
MISRA C ++:2008 правил 8-4-4 | Функциональный идентификатор должен или использоваться, чтобы вызвать функцию, или этим нужно предшествовать & | MISRA C++:2008 Rule 8-4-4 |
MISRA C ++:2008 правил 8-5-1 | Все переменные должны иметь заданное значение, прежде чем они будут использоваться | MISRA C++:2008 Rule 8-5-1 |
MISRA C ++:2008 правил 8-5-2 | Фигурные скобки должны использоваться, чтобы указать и совпадать со структурой в не - нулевая инициализация массивов и структур | MISRA C++:2008 Rule 8-5-2 |
MISRA C ++:2008 правил 8-5-3 | В списке перечислителей = построение не должно использоваться, чтобы явным образом инициализировать члены кроме первого, если все элементы не будут явным образом инициализированы | MISRA C++:2008 Rule 8-5-3 |
MISRA C ++:2008 правил 9-3-1 | функции членства const не должны возвращать указатели неconst или ссылки на данные класса | MISRA C++:2008 Rule 9-3-1 |
MISRA C ++:2008 правил 9-3-2 | Функции членства не должны возвращать указатели неconst на данные класса | MISRA C++:2008 Rule 9-3-2 |
MISRA C ++:2008 правил 9-3-3 | Если функция членства может быть сделана статической затем, это должно быть сделано статическим, в противном случае если это может быть сделано const затем, это должно быть сделано const | MISRA C++:2008 Rule 9-3-3 |
MISRA C ++:2008 правил 9-5-1 | Объединения не должны использоваться | MISRA C++:2008 Rule 9-5-1 |
MISRA C ++:2008 правил 9-6-2 | Битовые поля должны быть или типом bool или явным образом целочисленным типом со знаком или без знака | MISRA C++:2008 Rule 9-6-2 |
MISRA C ++:2008 правил 9-6-3 | Битовые поля не должны иметь перечислимого типа | MISRA C++:2008 Rule 9-6-3 |
MISRA C ++:2008 правил 9-6-4 | Названные битовые поля с типом целого числа со знаком должны иметь длину больше чем одного бита | MISRA C++:2008 Rule 9-6-4 |
Polyspace не делает поддержек эти Необходимые правила:
Правило | Описание |
---|---|
0-1-6 | Проект не должен содержать экземпляры энергонезависимых переменных, даваемых значения, которые впоследствии никогда не используются. |
0-1-8 | Все функции с пустым типом возврата должны иметь внешний побочный эффект (эффекты). |
5-17-1 | Семантическая эквивалентность между бинарным оператором и его формой оператора присваивания должна быть сохранена. |
7-2-1 | Выражение с типом лежания в основе перечисления должно только иметь значения, соответствующие перечислителям перечисления. |
14-7-1 | Все шаблоны классов, шаблоны функций, функции членства шаблона класса и шаблон класса статические члены нужно инстанцировать, по крайней мере, однажды. |
14-7-2 | Для любой данной специализации шаблона явное инстанцирование шаблона с аргументами шаблона, используемыми в специализации, не должно представлять плохо сформированную программу. |
Check MISRA C++:2008 (-misra-cpp)