Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V2580. MISRA. The 'restrict'...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V2580. MISRA. The 'restrict' specifier should not be used.

15 Апр 2021

Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.

Это правило актуально только для C. Запрещено использовать спецификатор 'restrict' в декларациях переменных, формальных параметров функций и полей структур/объединений. Несмотря на то, что компилятор может сгенерировать более оптимизированный код, это может привести к ошибкам, если два и более указателей ссылаются на одну и ту же область памяти.

Пример кода, на который анализатор выдаёт предупреждения:

void my_memcpy(void * restrict dest,
               const void * restrict src,
               size_t bytes)
{
  // ...
}

typedef struct
{
   void * restrict m_field;
} MyStruct;

Данная диагностика классифицируется как:

  • MISRA-C-8.14