Не должно быть никакого вхождения неопределенного или критического незаданного поведения
Не должно быть никакого вхождения неопределенного или критического незаданного поведения.
Код С, который приводит к неопределенному или критическому незаданному поведению, может привести к неожиданным или неправильным результатам. Такой код может вести себя по-другому в различных реализациях. Проблемы, вызванные неопределенным поведением в коде, могут затруднить, чтобы анализировать, потому что компиляторы могут оптимизировать код, принимающий, что неопределенное поведение не происходит.
Много правил MISRA C:2012 обращаются к определенным неопределенным или критическим незаданным поведениям. Это правило применяется к любому неопределенному или критическому незаданному поведению, которое не обращено ни в каком другом правиле.
Polyspace® флаги эти экземпляры неопределенного или критического неопределенного поведения:
Использование offsetof
на битовых полях.
Использование offsetof
когда вторым аргументом не является struct
поле первого аргумента.
Использование defined
без идентификатора.
Использование массива неполных типов.
Использование функции как макросы при помощи неправильного количества аргументов.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: стандарт C среда |
Категория: необходимый |
Категория AGC: необходимый |