如何在C ++中禁用CodeSonar警告

时间:2019-09-15 10:54:49

标签: c++ static-analysis

标题说明了一切...我有一个需要清理MISRA 2004的项目,并且公司被告知CodeSonar是进行静态分析的好工具。

在其他静态分析工具上,您可以添加魔术注释以禁用对下一行代码块的分析(PC-Lint为//lint -esym(42),CStat使用#pragma cstat_suppress="MISRAC++2008-6-4-1"),但CodeSonar则不似乎有任何等效项-请告诉我我错了!

我见过提到// NOSONAR的情况,但是在CodeSonar 5.1上似乎不起作用

(我很快得出结论,CS是由那些从未在SVN和多个程序员中在现实世界中进行过编程的人所写的一堆垃圾,其中,当您合并时,在精美的UI中禁用警告会降低工作效率分支到主干,所有行号都会更改。)

2 个答案:

答案 0 :(得分:1)

查看配置变量WARNING_FILTER的文档和示例。

CodeSonar在任何版本中都没有提供现成的// NOSONAR。但是,WARNING_FILTER可用的一种规则格式将允许您自己决定采用哪种方法。

如果需要禁止显示特定警告,则应该能够直接注释该警告。用于在分析之间关联“相同”警告的签名不取决于行号或极有可能更改的其他代码特征。

答案 1 :(得分:1)

自CodeSonar 4.0.0起,WARNING_FILTER中添加了一个新的过滤器选项:line_content,可让您添加“魔术注释”。

将以下行添加到您的proj_name.conf:

WARNING_FILTER += line_contents:"NOLINT"

这将禁用以// NOLINT结尾的行的警告

相关问题