Как моделировать, чтобы игнорировать ложные срабатывания Coverity Scan C ++ «noexcept»?

С Coverity начинает распознавать C ++ 11 noexcept как throw(),
он вызывает ложные срабатывания в коде, вызывающем сторонние библиотеки
как Boost.
Более того, какой-то код намеренно собирается аварийно завершить работу при исключении
потому что исключение в этом случае неисправимо, не по контракту или ошибка.

Пример отчета Coverity для этого случая:

CID 178772 (# 1 из 1): необработанное исключение (UNCAUGHT_EXCEPT) exn_spec_violation: исключение типа boost :: exception_detail :: clone_impl> выбрасывается, но бросить список throw () не позволяет его выбрасывать. Это приведет к вызову непредвиденной (), которая обычно вызывает terminate ().

Что такое файл моделирования для отправки на сканирование Coverity, чтобы игнорировать noexcept во всем мире?

0

Решение

Если вы редактируете user_nodefs.h файл (не существует по умолчанию, на него ссылаются конфиги, должен существовать в том же каталоге, что и ваш coverity_config.xml) вы можете просто добавить #define noexcept(x) — это превратится noexcept() в пустое определение, которое, следовательно, ничего не будет делать.

Рассматривали ли вы возможность использования компонентов для исключения сторонних дефектов из ваших представлений?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]