Отключить предупреждение clang-tidy для указанного макроса c - PullRequest
1 голос
/ 04 апреля 2020

У меня есть макрос, который создает глобальную переменную. И, таким образом, clang-tidy правильно выдаст сообщение «Инициализация ... со временем хранения c может вызвать исключение, которое не может быть перехвачено».

Можно ли отключить это предупреждение для каждого макроса? Предпочтительно в строке, где определен макрос.

То есть, скажем, у меня есть:

// header.h
#define UGLY_MACRO(X)  SomeClass X(#X)

// source.cpp
UGLY_MACRO(SomeName); // clang-tidy complains here

И я хочу, чтобы clang-tidy прекратил жаловаться на это.

I хочу быть как можно точнее c. Я хочу включить только это предупреждение для этого макроса. Я не хочу включать предупреждение глобально, тогда кто-то может добавить больше таких макросов в код незамеченным. Кроме того, я не хочу добавлять что-либо (например, // NOLNT (...)) в каждом месте, где используется макрос, это было бы слишком хлопотно.

Или я приближаюсь это с неправильного направления? Я работал с p c -линтом раньше, где это возможно.

1 Ответ

1 голос
/ 05 апреля 2020

Насколько я знаю, это невозможно. У рассматриваемой проверки ( cert-err58- cpp) нет настраиваемых параметров, что означает, что ее нельзя отключить отдельно для каждого макроса, только глобально.

Сохранить для изменения источника чека у вас есть только опция \\NOLINT(cert-err58-cpp) и \\NOLINTNEXTLINE(cert-err58-cpp). Последний немного проще использовать для текстового поиска и замены, так как вам нужно только перехватить новую строку, за которой следует имя макроса.

...