cppcheck,内联抑制如何与 misra 插件一起使用

cppcheck, how inline-suppression works with misra add-on

我尝试使用 CppCheck 和 misra 插件进行内联抑制:

我的例子:

    // /* Send number of data */

生成错误:

"misra-c2012-3.1" severity="style" msg="The character sequences /* and // shall not be used within a comment"

但如果我尝试过

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

我总是出错。 我尝试了关于 Id 的不同语法:

每次都会出现错误。

我使用选项 --inline-suppr

您似乎发现了一个错误。 你的方法对我来说是正确的。

对于以下 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 左右不起作用。