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

问题描述 投票:2回答:2

标题说明了一切……我有需要清理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中禁用警告会降低工作效率)进入中继线,所有行号都会更改。)

c++ static-analysis
2个回答
1
投票

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

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

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


0
投票

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

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

WARNING_FILTER += line_contents:"NOLINT"

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

© www.soinside.com 2019 - 2024. All rights reserved.