Кажется, вы нашли ошибку. Ваш подход мне кажется правильным.
Для следующего кода 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 или около того.