Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inline way to disable clang-tidy checks

I'm trying to set up clang-tidy for a project. I'd like to be able to have clean output, and encourage the use of -fix mode where possible. However, there are individual cases where an exception is needed.

Much as it is possible to use

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

for the equivalent case where one wants to locally disable a compiler warning, is it possible to do something similar from clang-tidy?

I have tried

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

and also with clang replaced with clang-tidy. Unfortunately when using clang as the pragma target and compiling with regular clang, I get the compilation warning

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

and

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

when compiling if I use clang-tidy in place of clang. Neither make an impact on what clang-tidy itself outputs when run over the source.

This is with clang and clang-tidy 3.8 on x86_64 Linux.

like image 619
Rich L Avatar asked Jun 21 '16 17:06

Rich L


Video Answer


1 Answers

Just add a comment containing the string NOLINT anywhere on the line you want clang-tidy to ignore. For example:

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

See the documentation here.

like image 175
Niall Douglas Avatar answered Sep 28 '22 09:09

Niall Douglas