c++ - 使用 NOLINT 抑制 clang-tidy。怎么才能压抑压抑?

标签 c++ clang-tidy

我有如下代码

int do_thing( int arg1, int arg2, int arg3 ) { // NOLINT : don't care that arg2 and arg3 aren't used
  return arg1;
}

NOLINT 注释通常会抑制 clang-tidy 警告。但是,如何在不更改代码的情况下为该行“重新启用”clang-tidy?

最佳答案

据我所知,没有简单的方法可以按照您想要的方式执行此操作。每当 clang-tidy 发现 NOLINT 注释时,它只会跳过该行,没有命令行选项可以防止这种行为。

由于 NOLINT 放在注释中,您不能使用预处理器,因为注释在宏扩展之前被删除。

您可以做的是找到 //NOLINT 并将其替换为一些其他(最好是唯一的)文本,例如 //DISABLE_NOLINT,运行 clang-tidy 检查,然后替换它回来了。

如果您真的不想触及该代码,您可以从修改 ClangTidyDiagnosticConsumer.cpp 中的 static bool LineIsMarkedWithNOLINT() 的源代码构建自己的 clang-tidy总是返回错误。或者甚至创建一个新的命令行选项来切换行为(如果这对您来说值得)。

关于c++ - 使用 NOLINT 抑制 clang-tidy。怎么才能压抑压抑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51228177/

相关文章:

静态成员变量的 C++ 核心指南

c++ - "cannot Convert vector<int>* to int"是什么意思?

c++ - 如何在基本 block 中插入LLVM StoreInst

c++ - 有没有办法使函数仅在通过 C++ 中的参数传递的函数中可用?

c++ - 使用 readability-identifier-naming 时,clang-tidy 将 namespace 视为全局变量

c++ - CMake 调用时出现 clang-tidy 重复错误

c++ - 创建注册表项 - 访问被拒绝

C++1y/C++14 : Converting static constexpr array to non-type template parameter pack?

c++ - 关于静态全局 lambda 变量的错误 clang-tidy 警告?

c++ - Clang 分析器潜在内存泄漏 - 误报