Начиная в R2021a, Polyspace® Bug Finder™ поддерживает поправки к MISRA C®:2012 правил в Техническом Исправлении 1 и Поправка 2.
MISRA C:2012 Техническое Исправление 1 добавляет разъяснения в существующие правила. Разъяснения привели к соответствующим изменениям в средствах проверки Polyspace.
Правило | Описание | Обновитесь в техническом исправлении 1 |
---|---|---|
MISRA C:2012 Rule 10.1 | Операнды не должны иметь несоответствующего существенного типа. | Правило теперь явным образом запрещает использование типов указателей с логическими операндами, такими как && , || и ! . |
MISRA C:2012 Rule 10.5 | Значение выражения не должно быть брошено к несоответствующему существенному типу. | Правило теперь запрещает броски целочисленных констант со значением 0 или 1 к по существу перечислимым типам. |
MISRA C:2012 Rule 11.2 | Преобразования не должны выполняться между указателем на неполный тип и любым другим типом. | Правило теперь учитывает только неполные типы, на которые указывают указатели. Например, если указатель присвоен другому, и единственной разницей между резкими типами является const спецификатор, правило не рассматривает это присвоение как преобразование. |
MISRA C:2012 Rule 11.4 | Преобразование не должно быть выполнено между указателем на объект и целочисленным типом. | Правило теперь применяется явным образом к указателям на объекты только. Преобразования между целочисленным типом и другими типами указателей, такими как void* или указатели на функции отмечаются другими правилами. |
MISRA C:2012 Rule 11.9 | Макро-NULL должен быть единственной разрешенной формой целочисленного постоянного нулевого указателя. | Правило позволяет использование {0} инициализировать агрегируется или объединения, содержащие указатели. |
MISRA C:2012 Rule 14.2 | Цикл for должен быть правильно построен. | Правило позволяет любую форму инициализации счетчика цикла, пока инициализация не имеет других побочных эффектов. |
Поправка 2 MISRA C:2012 обращается к новым функциям языка в стандарте C11. Все обновления в Поправке 2 были включены в средства проверки Polyspace.
Правило | Описание | Обновитесь в поправке 2 |
---|---|---|
MISRA C:2012 Rule 1.4 | Функции языка на стадии становления не должны быть использованы. | Это правило является новым в Поправке 2. |
MISRA C:2012 Rule 12.1 | Приоритет операторов в рамках выражений должен быть сделан явным. | Правило теперь передает под мандат нарушение если операнд _Alignof оператор не заключен в круглую скобку. |
MISRA C:2012 Rule 21.3 | Функции выделения памяти и освобождения <stdlib.h> не буду использоваться. | Правило теперь отмечает использование aligned_alloc функция. |
MISRA C:2012 Rule 21.8 | Стандартные функции завершения Библиотеки <stdlib.h> не должны использоваться. | Правило больше не отмечает В дополнение к |
MISRA C:2012 Rule 21.21 | Стандартная Библиотечная функция system из <stdlib.h> не буду использоваться. | Это правило является новым в Поправке 2. |
MISRA C:2012 Rule 22.1 | Все средства, полученные динамически посредством Стандартных Библиотечных функций, должны быть явным образом высвобождены. | Правило теперь отмечает выделение памяти с помощью aligned_alloc функционируйте, если память не выпущена. |