随着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
全局的建模文件是什么?
答案 0 :(得分:0)
如果编辑user_nodefs.h
文件(默认情况下不存在,由配置引用,应与coverity_config.xml
存在于同一目录中),您只需添加#define noexcept(x)
- 这会将noexcept()
转换为空的定义,因此无效。
您是否考虑过使用组件从视图中排除第三方缺陷?