cppcheck,在线抑制如何与misra附加组件一起工作

cppcheck,在线抑制如何与misra附加组件一起工作,cppcheck,misra,Cppcheck,Misra,我尝试使用CppCheck和misra附加组件进行内联抑制: 我的例子是: // /* Send number of data */ 生成错误: “misra-c2012-3.1”severity=“style”msg=“字符序列/*和 //不得在注释中使用“ 但如果我试过 // cppcheck-suppress misra-c2012-3.1 // /* Send number of data */ 我总是有错误。 我尝试了不同的Id语法: misra-c20

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

我的例子是:

    // /* Send number of data */
生成错误:

“misra-c2012-3.1”severity=“style”msg=“字符序列/*和 //不得在注释中使用“

但如果我试过

    // cppcheck-suppress  misra-c2012-3.1
    // /* Send number of data */
我总是有错误。 我尝试了不同的Id语法:

  • misra-c2012-3.1
  • misra_c2012_3.1
  • misra_3.1
  • misra-3.1
每次都会引发错误


我使用选项--inline suppr

看起来您发现了一个bug。 我认为你的方法是正确的

对于以下C代码(在文件misra_suppression_test.C中),抑制工作:

// cppcheck-suppress misra-c2012-2.7
void misra_2_7_unused_param (int *param1, int unused_param)
{
    *param1 = 42U;
}
如果没有
--内联支持
,则会报告违规情况:

$ ./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)
     ^
$ ./cppcheck --enable=style --addon=misra --inline-suppr misra_suprpession_test.c
Checking misra_suppression_test.c ...

看起来规则3.1中的抑制不起作用。

您似乎发现了一个bug。 我认为你的方法是正确的

对于以下C代码(在文件misra_suppression_test.C中),抑制工作:

// cppcheck-suppress misra-c2012-2.7
void misra_2_7_unused_param (int *param1, int unused_param)
{
    *param1 = 42U;
}
如果没有
--内联支持
,则会报告违规情况:

$ ./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)
     ^
$ ./cppcheck --enable=style --addon=misra --inline-suppr misra_suprpession_test.c
Checking misra_suppression_test.c ...

似乎规则3.1中的抑制不起作用。

但为什么要在注释中添加注释呢?这是一些强氧剂的东西吗?不,这只是一个测试内联抑制的例子,这是打破MISRA规则的一个简单方法。但为什么一开始你会在注释中添加注释呢?这是某种强氧剂吗?不,这只是一个测试内联抑制的例子,这是打破MISRA规则的简单方法。我做了和你一样的测试。未报告违规行为。所以,是的,显然这是一个错误。有些规则行得通,有些则不行。。。我会报告的。谢谢:)我做了和你一样的测试。未报告违规行为。所以,是的,显然这是一个错误。有些规则行得通,有些则不行。。。我会报告的。谢谢:)