Статически осуществимые правила MISRA C:2012, поддержанные Polyspace Bug Finder

Стандарт MISRA C:2012 классифицирует правила, которые могут быть статически осуществлены во всех возможных случаях как Разрешимые. Polyspace® поддержки 122 из 122 таких правил.

Правило MISRA C:2012ОписаниеСредство проверки Polyspace
Правило 10.1 MISRA C:2012Операнды не должны иметь несоответствующего существенного типаMISRA C:2012 Rule 10.1
Правило 10.2 MISRA C:2012Выражения чрезвычайно типа символов не должны использоваться неуместно, кроме того, и операции вычитанияMISRA C:2012 Rule 10.2
Правило 10.3 MISRA C:2012Значение выражения не должно быть присвоено объекту с более узким существенным типом или различной существенной категории типаMISRA C:2012 Rule 10.3
Правило 10.4 MISRA C:2012Оба операнда оператора, в котором выполняются обычные арифметические преобразования, должны иметь ту же существенную категорию типаMISRA C:2012 Rule 10.4
Правило 10.5 MISRA C:2012Значение выражения не должно быть брошено к несоответствующему существенному типуMISRA C:2012 Rule 10.5
Правило 10.6 MISRA C:2012Значение составного выражения не должно быть присвоено объекту с более широким существенным типомMISRA C:2012 Rule 10.6
Правило 10.7 MISRA C:2012Если составное выражение будет использоваться в качестве одного операнда оператора, в котором обычные арифметические преобразования выполняются затем, то другой операнд не должен иметь более широкого существенного типаMISRA C:2012 Rule 10.7
Правило 10.8 MISRA C:2012Значение составного выражения не должно быть брошено к различной существенной категории типа или более широкому существенному типуMISRA C:2012 Rule 10.8
Правило 11.1 MISRA C:2012Преобразования не должны выполняться между указателем на функцию и любым другим типомMISRA C:2012 Rule 11.1
Правило 11.2 MISRA C:2012Преобразования не должны выполняться между указателем на неполный тип и любым другим типомMISRA C:2012 Rule 11.2
Правило 11.3 MISRA C:2012Бросок не должен выполняться между указателем на тип объекта и указателем на различный тип объектаMISRA C:2012 Rule 11.3
Правило 11.4 MISRA C:2012Преобразование не должно быть выполнено между указателем на объект и целочисленным типомMISRA C:2012 Rule 11.4
Правило 11.5 MISRA C:2012Преобразование не должно быть выполнено от указателя, чтобы освободить в указатель на объектMISRA C:2012 Rule 11.5
Правило 11.6 MISRA C:2012Бросок не должен выполняться между указателем на пустоту и арифметическим типомMISRA C:2012 Rule 11.6
Правило 11.7 MISRA C:2012Бросок не должен выполняться между указателем на объект и типом арифметики нецелого числаMISRA C:2012 Rule 11.7
Правило 11.8 MISRA C:2012Бросок не должен удалять const или энергозависимую проверку от типа, на который указывает указательMISRA C:2012 Rule 11.8
Правило 11.9 MISRA C:2012Макро-NULL должен быть единственной разрешенной формой целочисленного постоянного нулевого указателяMISRA C:2012 Rule 11.9
Правило 12.1 MISRA C:2012Приоритет операторов в рамках выражений должен быть сделан явнымMISRA C:2012 Rule 12.1
Правило 12.3 MISRA C:2012Оператор запятой не должен использоватьсяMISRA C:2012 Rule 12.3
Правило 12.4 MISRA C:2012Оценка константных выражений не должна приводить к переносу беззнаковых целых чиселMISRA C:2012 Rule 12.4
Правило 12.5 MISRA C:2012sizeof оператор не должен иметь операнда, который является параметром функции, объявленным как “массив типа”MISRA C:2012 Rule 12.5
Правило 13.3 MISRA C:2012Полное выражение, содержащее шаг (++) или декремент (-) оператор, не должно иметь никаких других потенциальных побочных эффектов кроме вызванного инкрементным или оператором пониженияMISRA C:2012 Rule 13.3
Правило 13.4 MISRA C:2012Результат оператора присваивания не должен использоватьсяMISRA C:2012 Rule 13.4
Правило 13.6 MISRA C:2012Операнд sizeof оператора не должен содержать выражение, которое имеет потенциальные побочные эффектыMISRA C:2012 Rule 13.6
Правило 14.4 MISRA C:2012Выражение управления оператора if и выражение управления оператора цикла должны иметь по существу булев типMISRA C:2012 Rule 14.4
Правило 15.1 MISRA C:2012Оператор перехода не должен использоватьсяMISRA C:2012 Rule 15.1
Правило 15.2 MISRA C:2012Оператор перехода должен перейти к метке, объявленной позже в той же функцииMISRA C:2012 Rule 15.2
Правило 15.3 MISRA C:2012Любая метка, на которую ссылается оператор перехода, должна быть объявлена в том же блоке, или в любом блоке, заключающем оператор переходаMISRA C:2012 Rule 15.3
Правило 15.4 MISRA C:2012Должен быть не больше, чем один оператор завершения, или оператор перехода раньше отключал любой оператор циклаMISRA C:2012 Rule 15.4
Правило 15.5 MISRA C:2012Функция должна иметь одну точку выхода в концеMISRA C:2012 Rule 15.5
Правило 15.6 MISRA C:2012Тело оператора цикла или оператора выбора должно быть составным операторомMISRA C:2012 Rule 15.6
Правило 15.7 MISRA C:2012Все, если … еще, если построения еще должны быть отключены с операторMISRA C:2012 Rule 15.7
Правило 16.1 MISRA C:2012Все операторы switch должны быть правильно построеныMISRA C:2012 Rule 16.1
Правило 16.2 MISRA C:2012Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switchMISRA C:2012 Rule 16.2
Правило 16.3 MISRA C:2012Безусловный оператор завершения должен отключить каждый пункт переключателяMISRA C:2012 Rule 16.3
Правило 16.4 MISRA C:2012Каждый оператор switch должен иметь метку по умолчаниюMISRA C:2012 Rule 16.4
Правило 16.5 MISRA C:2012Метка по умолчанию должна появиться или как первое или как последняя метка переключателя оператора switchMISRA C:2012 Rule 16.5
Правило 16.6 MISRA C:2012Каждый оператор switch должен иметь по крайней мере два пункта переключателяMISRA C:2012 Rule 16.6
Правило 16.7 MISRA C:2012Выражение переключателя не должно иметь по существу булева типаMISRA C:2012 Rule 16.7
Правило 17.1 MISRA C:2012Функции <stdarg.h> не должны быть использованыMISRA C:2012 Rule 17.1
Правило 17.3 MISRA C:2012Функция не должна быть объявлена неявноMISRA C:2012 Rule 17.3
Правило 17.4 MISRA C:2012Все выходные пути от функции с непустым типом возврата должны иметь явный оператор возврата с выражениемMISRA C:2012 Rule 17.4
Правило 17.6 MISRA C:2012Объявление параметра массива не должно содержать статическое ключевое слово между []MISRA C:2012 Rule 17.6
Правило 17.7 MISRA C:2012Значение, возвращенное функцией, имеющей непустой тип возврата, должно использоватьсяMISRA C:2012 Rule 17.7
Правило 18.4 MISRA C:2012+, - + = и - = операторы не должны быть применены к выражению типа указателяMISRA C:2012 Rule 18.4
Правило 18.5 MISRA C:2012Объявления должны содержать не больше, чем два уровня вложения указателяMISRA C:2012 Rule 18.5
Правило 18.7 MISRA C:2012Члены массива с переменными границами не должны быть объявленыMISRA C:2012 Rule 18.7
Правило 18.8 MISRA C:2012Типы массива переменной длины не должны использоватьсяMISRA C:2012 Rule 18.8
Правило 19.2 MISRA C:2012Ключевое слово объединения не должно использоватьсяMISRA C:2012 Rule 19.2
Правило 1.1 MISRA C:2012Программа не должна содержать нарушения стандартного Синтаксиса C и ограничения, и не должна превышать пределы перевода реализацииMISRA C:2012 Rule 1.1
Правило 1.2 MISRA C:2012Расширения языка не должны использоватьсяMISRA C:2012 Rule 1.2
Правило 1.4 MISRA C:2012Функции языка на стадии становления не должны быть использованыMISRA C:2012 Rule 1.4
Правило 20.1 MISRA C:2012Директивам #include должны только предшествовать директивы препроцессору или комментарииMISRA C:2012 Rule 20.1
Правило 20.10 MISRA C:2012# и ## операторы препроцессора не должны использоватьсяMISRA C:2012 Rule 20.10
Правило 20.11 MISRA C:2012Макро-параметр сразу после # оператора не должен сразу сопровождаться ## операторомMISRA C:2012 Rule 20.11
Правило 20.12 MISRA C:2012Макро-параметр, используемый в качестве операнда к # или ## операторам, который самостоятельно удовлетворяет дальнейшей макро-замене, должен только использоваться в качестве операнда к этим операторамMISRA C:2012 Rule 20.12
Правило 20.13 MISRA C:2012Линия, первая лексема которой является #, должна быть допустимой директивой предварительной обработкиMISRA C:2012 Rule 20.13
Правило 20.14 MISRA C:2012Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if, #ifdef или #ifndef директива, с которой они связаныMISRA C:2012 Rule 20.14
Правило 20.2 MISRA C:2012', "или \символы и/* или//последовательности символов не должны происходить на имя заголовочного файлаMISRA C:2012 Rule 20.2
Правило 20.3 MISRA C:2012#include директива должна сопровождаться или <имя файла> или последовательность "имени файла"MISRA C:2012 Rule 20.3
Правило 20.4 MISRA C:2012Макрос не должен быть задан с тем же именем как ключевое словоMISRA C:2012 Rule 20.4
Правило 20.5 MISRA C:2012#undef не должен использоватьсяMISRA C:2012 Rule 20.5
Правило 20.6 MISRA C:2012Лексемы, которые похожи на директиву предварительной обработки, не должны происходить в макро-аргументеMISRA C:2012 Rule 20.6
Правило 20.7 MISRA C:2012Выражения, следующие из расширения макро-параметров, должны быть заключены в круглые скобкиMISRA C:2012 Rule 20.7
Правило 20.8 MISRA C:2012Выражение управления #if или директивы предварительной обработки #elif должно оценить к 0 или 1MISRA C:2012 Rule 20.8
Правило 20.9 MISRA C:2012Все идентификаторы, используемые в выражении управления #if или директив предварительной обработки #elif, должны быть #define’d перед оценкойMISRA C:2012 Rule 20.9
Правило 21.1 MISRA C:2012#define и #undef не должны использоваться на зарезервированном идентификаторе или зарезервировали макро-имяMISRA C:2012 Rule 21.1
Правило 21.10 MISRA C:2012Стандартные функции времени и даты Библиотеки не должны использоватьсяMISRA C:2012 Rule 21.10
Правило 21.11 MISRA C:2012Стандартный заголовочный файл <tgmath.h> не должен использоватьсяMISRA C:2012 Rule 21.11
Правило 21.12 MISRA C:2012Функции обработки исключений <fenv.h> не должен использоватьсяMISRA C:2012 Rule 21.12
Правило 21.15 MISRA C:2012Аргументы указателя к Стандартным Библиотечным функциям memcpy, memmove и memcmp будут указатели на квалифицированные или неполные версии совместимых типовMISRA C:2012 Rule 21.15
Правило 21.16 MISRA C:2012Аргументы указателя к Стандартной Библиотечной функции memcmp укажу или на тип указателя, чрезвычайно тип со знаком, тип чрезвычайно без знака, по существу булев тип или на по существу перечислимый типMISRA C:2012 Rule 21.16
Правило 21.2 MISRA C:2012Зарезервированный идентификатор или зарезервированное макро-имя не должны быть объявленыMISRA C:2012 Rule 21.2
Правило 21.21 MISRA C:2012Стандартная Библиотечная функция system из <stdlib.h> не буду использоватьсяMISRA C:2012 Rule 21.21
Правило 21.3 MISRA C:2012Функции выделения памяти и освобождения <stdlib.h> не буду использоватьсяMISRA C:2012 Rule 21.3
Правило 21.4 MISRA C:2012Стандартный заголовочный файл <setjmp.h> не должен использоватьсяMISRA C:2012 Rule 21.4
Правило 21.5 MISRA C:2012Стандартный заголовочный файл <signal.h> не должен использоватьсяMISRA C:2012 Rule 21.5
Правило 21.6 MISRA C:2012Стандартные функции ввода/вывода Библиотеки не должны использоватьсяMISRA C:2012 Rule 21.6
Правило 21.7 MISRA C:2012Стандартные Библиотечные функции atof, atoi, atol, и atoll функции <stdlib.h> не буду использоватьсяMISRA C:2012 Rule 21.7
Правило 21.8 MISRA C:2012Стандартные Библиотечные функции abortвыход, getnenv и system из <stdlib.h> не буду использоватьсяMISRA C:2012 Rule 21.8
Правило 21.9 MISRA C:2012Стандартные библиотечные функции Библиотеки bsearch и qsort из <stdlib.h> не буду использоватьсяMISRA C:2012 Rule 21.9
Правило 2.3 MISRA C:2012Проект не должен содержать неиспользованные описания типаMISRA C:2012 Rule 2.3
Правило 2.4 MISRA C:2012Проект не должен содержать неиспользованные объявления тегаMISRA C:2012 Rule 2.4
Правило 2.5 MISRA C:2012Проект не должен содержать неиспользованные макро-объявленияMISRA C:2012 Rule 2.5
Правило 2.6 MISRA C:2012Функция не должна содержать неиспользованные описания метокMISRA C:2012 Rule 2.6
Правило 2.7 MISRA C:2012В функциях не должно быть никаких неиспользованных параметровMISRA C:2012 Rule 2.7
Правило 3.1 MISRA C:2012Последовательности символов /* и // не буду использоваться в рамках комментарияMISRA C:2012 Rule 3.1
Правило 3.2 MISRA C:2012Соединение линии не должно использоваться в // комментарииMISRA C:2012 Rule 3.2
Правило 4.1 MISRA C:2012Должны быть отключены восьмеричные и шестнадцатеричные escape-последовательностиMISRA C:2012 Rule 4.1
Правило 4.2 MISRA C:2012Trigraphs не должен использоватьсяMISRA C:2012 Rule 4.2
Правило 5.1 MISRA C:2012Внешние идентификаторы должны быть отличнымиMISRA C:2012 Rule 5.1
Правило 5.2 MISRA C:2012Идентификаторы, объявленные в том же осциллографе и пространстве имен, должны быть отличнымиMISRA C:2012 Rule 5.2
Правило 5.3 MISRA C:2012Идентификатор, объявленный во внутреннем осциллографе, не должен скрывать идентификатор, объявленный во внешнем осциллографеMISRA C:2012 Rule 5.3
Правило 5.4 MISRA C:2012Макро-идентификаторы должны быть отличнымиMISRA C:2012 Rule 5.4
Правило 5.5 MISRA C:2012Идентификаторы должны быть отличны от макро-именMISRA C:2012 Rule 5.5
Правило 5.6 MISRA C:2012Имя определения типа должно быть уникальным идентификаторомMISRA C:2012 Rule 5.6
Правило 5.7 MISRA C:2012Имя тега должно быть уникальным идентификаторомMISRA C:2012 Rule 5.7
Правило 5.8 MISRA C:2012Идентификаторы, которые задают объекты или функции с внешним рычажным устройством, должны быть уникальнымиMISRA C:2012 Rule 5.8
Правило 5.9 MISRA C:2012Идентификаторы, которые задают объекты или функции с внутренним рычажным устройством, должны быть уникальнымиMISRA C:2012 Rule 5.9
Правило 6.1 MISRA C:2012Битовые поля должны только быть объявлены с соответствующим типомMISRA C:2012 Rule 6.1
Правило 6.2 MISRA C:2012Одноразрядные именованные битовые поля не должны иметь типа со знакомMISRA C:2012 Rule 6.2
Правило 7.1 MISRA C:2012Восьмеричные константы не должны использоватьсяMISRA C:2012 Rule 7.1
Правило 7.2 MISRA C:2012Суффикс “u” или “U” должен быть применен ко всем целочисленным константам, которые представлены в типе без знакаMISRA C:2012 Rule 7.2
Правило 7.3 MISRA C:2012Символ нижнего регистра "l" не должен использоваться в литеральном суффиксеMISRA C:2012 Rule 7.3
Правило 7.4 MISRA C:2012Строковый литерал не должен быть присвоен объекту, если тип объекта не будет “указателем на квалифицированный к const char”MISRA C:2012 Rule 7.4
Правило 8.1 MISRA C:2012Типы должны быть явным образом заданыMISRA C:2012 Rule 8.1
Правило 8.10 MISRA C:2012Подставляемая функция должна быть объявлена со статическим классом памятиMISRA C:2012 Rule 8.10
Правило 8.11 MISRA C:2012Когда массив с внешним рычажным устройством объявляется, его размер должен быть явным образом заданMISRA C:2012 Rule 8.11
Правило 8.12 MISRA C:2012В рамках списка перечислителей значение неявно заданного постоянного перечисления должно быть уникальнымMISRA C:2012 Rule 8.12
Правило 8.14 MISRA C:2012Ограничить спецификатор типа не должен использоватьсяMISRA C:2012 Rule 8.14
Правило 8.2 MISRA C:2012Функциональные типы должны быть в прототипной форме именованными параметрамиMISRA C:2012 Rule 8.2
Правило 8.3 MISRA C:2012Все объявления объекта или функции должны использовать те же имена и ввести спецификаторыMISRA C:2012 Rule 8.3
Правило 8.4 MISRA C:2012Совместимое объявление должно отобразиться, когда объект или функция с внешним рычажным устройством будут заданыMISRA C:2012 Rule 8.4
Правило 8.5 MISRA C:2012Внешний объект или функция должны быть объявлены однажды в одном и только одном файлеMISRA C:2012 Rule 8.5
Правило 8.6 MISRA C:2012Идентификатор с внешним рычажным устройством должен иметь точно одно внешнее определениеMISRA C:2012 Rule 8.6
Правило 8.7 MISRA C:2012Функции и объекты не должны быть заданы с внешним рычажным устройством, если на них ссылаются только в одном модуле переводаMISRA C:2012 Rule 8.7
Правило 8.8 MISRA C:2012Статический спецификатор класса памяти должен использоваться во всех объявлениях объектов и функций, которые имеют внутреннее рычажное устройствоMISRA C:2012 Rule 8.8
Правило 8.9 MISRA C:2012Объект должен быть задан в области действия блока, если ее идентификатор только появляется в одной функцииMISRA C:2012 Rule 8.9
Правило 9.2 MISRA C:2012Инициализатор для агрегата или объединения должен быть заключен в фигурные скобкиMISRA C:2012 Rule 9.2
Правило 9.3 MISRA C:2012Массивы не должны быть частично инициализированыMISRA C:2012 Rule 9.3
Правило 9.4 MISRA C:2012Элемент объекта не должен быть инициализирован несколько разMISRA C:2012 Rule 9.4
Правило 9.5 MISRA C:2012Где обозначенные инициализаторы используются, чтобы инициализировать объект массивов, что размер массива должен быть задан явным образомMISRA C:2012 Rule 9.5

Смотрите также

Похожие темы