Как отключить предупреждение CodeSonar в C++

Название говорит само за себя... У меня есть проект, который нужно очистить от MISRA 2004, и компании сказали, что CodeSonar - хороший инструмент для статического анализа.

В других инструментах статического анализа вы можете добавить волшебный комментарий, чтобы отключить анализ следующей строки \ блока кода (PC-Lint - это //lint -esym(42), CStat использует #pragma cstat_suppress="MISRAC++2008-6-4-1"), но у CodeSonar, похоже, нет эквивалента - скажите, пожалуйста, я ошибаюсь!

Я видел упоминание о // NOSONAR но это не работает на CodeSonar 5.1

(Я быстро прихожу к выводу, что CS - это куча мусора, написанная людьми, которые никогда не программировали в реальном мире с SVN и несколькими программистами, где отключение предупреждений в причудливом пользовательском интерфейсе идет вниз, когда вы объединяете ветки в ствол и все номера строк изменятся.)

2 ответа

Решение

Начиная с CodeSonar 4.0.0, в WARNING_FILTER: line_content что позволяет добавить "волшебный комментарий".

Добавьте следующую строку в свой proj_name.conf:

WARNING_FILTER += line_contents:"NOLINT"

Это отключит предупреждения для строки, заканчивающейся на // NOLINT

Ознакомьтесь с документацией и примерами для переменной конфигурации WARNING_FILTER.

CodeSonar не предоставляет готовых // NOSONARв любой версии. Однако одна из доступных форм правил дляWARNING_FILTER позволит вам реализовать его для себя, если вы решите принять такой подход.

Если вам нужно подавить конкретное предупреждение, вы сможете напрямую аннотировать это предупреждение. Сигнатуры, которые используются для сопоставления "одного и того же" предупреждения между анализами, не зависят от номера строки или других функций кода, которые с большой вероятностью могут измениться.

Другие вопросы по тегам