标题说明了一切...我有一个需要清理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中禁用警告会降低工作效率分支到主干,所有行号都会更改。)
答案 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
结尾的行的警告