MISRA C:2012 Rule 8.14

Ограничить спецификатор типа не должен использоваться

Описание

Примечание

Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.

Управляйте определением

Ограничить спецификатор типа не должен использоваться.

Объяснение

Когда вы используете restrict спецификатор тщательно, это повышает эффективность кода, сгенерированного компилятором. Это может также улучшить статический анализ. Однако при использовании restrict спецификатор, это затрудняет, чтобы убедиться, что области памяти, управляемые на двумя или больше указателями, не перекрываются.

Реализация Polyspace

Средство проверки правила отмечает все использование restrict спецификатор.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.

Примеры

развернуть все

void f(int n, int * restrict p, int * restrict q)/*Noncompliant*/ 
{
}

В этом примере, обоих использовании restrict спецификатор отмечается.

Проверяйте информацию

Группа: объявления и определения
Категория: необходимый
Категория AGC: консультация

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2021b

Введенный в R2014b