cppcheck, как встроенное подавление работает с надстройкой Misra - PullRequest
1 голос
/ 23 апреля 2020

Я попробовал встроенное подавление с помощью CppCheck и надстройки misra:

Мой пример:

    // /* Send number of data */

Сгенерировать ошибку:

"misra-c2012 -3.1 "severity =" style "msg =" Последовательности символов / * и // не должны использоваться в комментарии "

Но если я попробую

    // cppcheck-suppress  misra-c2012-3.1
    // /* Send number of data */

I всегда есть ошибка. Я попробовал другой синтаксис для идентификатора:

  • misra-c2012-3.1
  • misra_c2012_3.1
  • misra_3.1
  • misra-3.1

Каждый раз, когда ошибка всегда возникает.

Я использую опцию --inline-suppr

1 Ответ

0 голосов
/ 23 апреля 2020

Кажется, вы нашли ошибку. Ваш подход мне кажется правильным.

Для следующего кода C (здесь, в файле misra_suppression_test. c) подавление работает:

// cppcheck-suppress misra-c2012-2.7
void misra_2_7_unused_param (int *param1, int unused_param)
{
    *param1 = 42U;
}

Без --inline-suppr нарушения сообщается:

$ ./cppcheck --enable=style --addon=misra misra_suppression_test.c
Checking misra_suppression_test.c ...
misra_suppression_test.c:2:6: style: misra violation (use --rule-texts=<file> to get proper output) [misra-c2012-2.7]
void misra_2_7_unused_param (int *param1, int unused_param)
     ^

С --inline-suppr нарушение больше не сообщается:

$ ./cppcheck --enable=style --addon=misra --inline-suppr misra_suprpession_test.c
Checking misra_suppression_test.c ...

Похоже, что подавление не работает для правила 3.1 или около того.

...