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

V3546. AUTOSAR. Conversions between pointers to objects and integer types should not be performed.

03 Мар 2021

Данное диагностическое правило основано на руководстве AUTOSAR (AUTomotive Open System ARchitecture) по разработке программного обеспечения.

Приведения между указателями на объект и целочисленными типами могут послужить причиной неопределенного, неуточненного или зависимого от реализации поведения. В связи с этим, рекомендуется не использовать подобные приведения.

Пример нарушения 1:

struct S { int16_t i; int16_t j; } *ps = ....;
int i64 = reinterpret_cast<int>(ps);

Пример нарушения 2:

void foo(int i) {}

void wrong_param_type()
{
  char *pc = ....;
  foo((int) pc); 
}

Пример нарушения 3:

int wrong_return_type()
{
  double *pd = ....;
  return (int) pd;
}

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

  • AUTOSAR-M5.2.8
  • AUTOSAR-M5.2.9