Встроенный способ отключить проверку clang-tidy

Я пытаюсь настроить clang-tidy для проекта. Я хотел бы иметь чистую выходную информацию и поощрять использование режима -fix, где это возможно. Однако есть отдельные случаи, когда требуется исключение.

Как можно использовать

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wreserved-id-macro"
// Code that is being specially exempted
#pragma clang diagnostic pop

для эквивалентного случая, когда требуется локально отключить предупреждение компилятора, возможно ли сделать что-то подобное из clang-tidy?

Я пробовал

#pragma clang diagnostic push
#pragma clang diagnostic ignored "readability-identifier-naming"
// Code that is being specially exempted
#pragma clang diagnostic pop

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

warning: pragma diagnostic expected option name (e.g. "-Wundef") [-Wunknown-pragmas]

и

warning: unknown pragma ignored [clang-diagnostic-unknown-pragmas]

при компиляции, если я использую clang-tidy вместо clang. Не влияют на то, что сам clang-tidy выводит при запуске через источник.

Это с clang и clang-tidy 3.8 на x86_64 Linux.

Ответ 1

Просто добавьте комментарий, содержащий строку NOLINT, в любом месте строки, которую вы хотите, чтобы игнорировать. Например:

badcode;  // NOLINT

// NOLINTNEXTLINE
badcode;

badcode; // NOLINT(cert-err-58-cpp)

См. Документацию здесь.