Coverity開始識別C++ 11 noexcept
爲throw()
, 它在調用第三方庫 (如Boost)的代碼中產生虛假的誤報。此外,一些代碼故意意圖在異常 上崩潰,因爲這種情況下的異常是不可恢復的,不合同的或錯誤的。如何建模忽略Coverity掃描C++'noexcept'誤報?
一個例子對於這種情況Coverity的報告是:
CID 178772(1#1):未捕獲異常(UNCAUGHT_EXCEPT)exn_spec_violation:升壓型的例外:: exception_detail :: clone_impl>拋出但拋出列表throw()不允許拋出。這將導致通常調用terminate()的意外調用()。
什麼是建模文件提交Coverity掃描忽略noexcept
全球?
提交是通過Travis-CI集成, 完成的,所以我不確定「coverity_config.xml」的位置。 –
由於在代碼中允許使用「noexcept」和「noexcept(...)」,「defanging」方法有問題 。 如何使用單個宏解決它們兩個問題? –
這有點困難(對於任何宏問題,答案都是一樣的)。你可以嘗試使用ppp_translator--你可以通過'--xml-option'指定'cov-configure'。例如,'cov-configure ...'--xml-option = append_arg: - ppp_translator = replace/noexcept \ s *(\(。* \))?/''。 ppp_translator採用正則表達式並在預處理器生效之前應用(ppp代表'pre-pre-process'),因此您也可以使用它來將代碼按摩到更加宏觀友好的形式。 – Caleb