c++ 禁用clang-tidy检查的内联方式

1hdlvixo  于 2023-04-01  发布在  其他
关注(0)|答案(2)|浏览(168)

我正在尝试为一个项目设置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作为pragma目标并使用常规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本身的输出。
x86_64 Linux上的clangclang-tidy 3.8就是这样。

sh7euo9m

sh7euo9m1#

只需在您希望clang-tidy忽略的行的任何位置添加包含字符串NOLINT的注解。例如:

badcode;  // NOLINT

// NOLINTNEXTLINE
badcode;

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

请参阅此处的文档。

46qrfjad

46qrfjad2#

从LLVM 14.0.0开始,您还可以用途:

// NOLINTBEGIN(cert-err58-cpp)
multiple lines of code;
// NOLINTEND(cert-err58-cpp)

相关问题