Есть ли способ отключить предупреждение в определенной строке, созданное CodeSonar?

Мы используем стороннюю библиотеку dlt для целей ведения журнала, и codeSonar показывает предупреждения в конкретных журналах, например:-INFO_LOG(dltContext,"This is my log");Текст предупреждения: Несоответствующий тип присвоения Это назначение параметра относится к местоположению другой категории существенного типа. Местоположение имеет основной тип signed/int (32 бита), а значение имеет основной тип character/char (8 бит). Нарушение MISRA C:2012 10.3: значение выражения не должно присваиваться объекту с более узким существенным типом или другой категорией существенного типа.

Поэтому нужен способ отключить предупреждения на уровне строки с помощью ключевых слов. CodeSonar показывает в этой строке несоответствующий тип назначения, и это не влияет на работу кода. Получил аналогичный пост, но он не помог:- Как отключить предупреждение CodeSonar в C++

В приведенных выше состояниях используется:- WARNING_FILTER += line_contents:"NOLINT" в файле project.conf, я пытался, но это не сработало.

Пожалуйста, поделитесь своими взглядами на то же самое, если кто-нибудь пробовал. Окружение: x86/ C++ 11

1 ответ

Вы можете отказаться от предупреждения в строке кода, используя параметр conf WARNING_FILTER, как вы пробовали раньше, вот так:

Синтаксис: WARNING_FILTER += <action> <rule> [<rule> ...]

Отбросьте все предупреждения, появляющиеся в файле main.c в строке 11. (Примечание: если в шаблоне есть два или более s, шаблон будет применяться к предупреждениям, которые соответствуют ВСЕМ правилам).

WARNING_FILTER += discard file=main.c line=11

Отбросьте все предупреждения, появляющиеся в исходной строке, содержащей текст "не выдавать предупреждение здесь" (предположительно в комментарии).

WARNING_FILTER += discard line_contents:"do not issue a warning here"

Параметр, который вы пробовали ранее, будет работать, только если строка кода в вашем проекте содержит "NOLINT".

Вы можете узнать больше о том, как WARNING_FILTERПараметр используется в руководстве CodeSonar, доступном из вашего хаба CodeSonar, щелкнув ссылку "Руководство" в правом верхнем меню на всех страницах хаба, выполнив поиск по запросу "warning_filter". Первым результатом должны быть "Параметры файла конфигурации, не зависящие от компилятора", на этой странице выполните поиск по запросу "Позволяет изменять предупреждения перед их отправкой в ​​концентратор или полностью отбрасывать без отправки".

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

Настройка будет сохраняться для всех будущих анализов.

Вы можете найти дополнительную информацию об изменении предупреждений в руководстве, выполнив поиск по запросу "предупреждение", щелкнув результат поиска "Графический интерфейс: отчет о предупреждениях" и выполнив поиск на странице "Изменить форму предупреждения".

Если вы не хотите видеть предупреждения для системных включаемых файлов, вы можете использовать этот параметр:

WARNING_FILTER += discard is_sysinclude

(Примечание: вам необходимо обязательно установить параметр: SYSTEM_INCLUDE_PATHSЧтобы получить дополнительную информацию в руководстве, выполните поиск по запросу "system_include_paths" и щелкните результат поиска "Параметры файла конфигурации, не зависящие от компилятора", затем выполните поиск на странице "Указывает пути файловой системы, которые содержат заголовки включения системы").

Электронное письмо для прямой связи со службой поддержки GrammaTech находится в руководстве под заголовком "Руководство по CodeSonar".

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