如何建模忽略Coverity Scan C ++'noexcept'误报?

时间:2017-04-22 23:58:22

标签: c++ noexcept coverity false-positive

随着Coverity开始将C ++ 11 noexcept识别为throw(), 它在调用第三方库的代码中产生虚假误报 喜欢Boost。 此外,一些代码故意意图在异常时崩溃 因为在这种情况下的例外是不可恢复的,不合同或错误。

此案例的封面报告示例如下:

  

CID 178772(#1 of 1):未捕获异常(UNCAUGHT_EXCEPT)exn_spec_violation:类型boost :: exception_detail :: clone_impl>的异常抛出但抛出列表throw()不允许抛出它。这将导致调用unexpected(),通常调用terminate()。

要提交给Coverity扫描以忽略noexcept全局的建模文件是什么?

1 个答案:

答案 0 :(得分:0)

如果编辑user_nodefs.h文件(默认情况下不存在,由配置引用,应与coverity_config.xml存在于同一目录中),您只需添加#define noexcept(x) - 这会将noexcept()转换为空的定义,因此无效。

您是否考虑过使用组件从视图中排除第三方缺陷?