如何启用clang-tidy的"现代化"检查?

Kno*_*abe 7 clang clang-static-analyzer clang++ clang-tidy

我刚刚安装了ClangOnWin,我正试图让clang-tidy"现代化"检查工作.不幸的是,clang-tidy似乎并不了解它们:clang-tidy -list-checks foo.cpp -- | grep modernize没有输出.

这里列出 "现代化"检查,但该页面似乎记录了Clang 3.8,我安装的版本是3.7.但是,3.7版是LLVM下载页面中列出的当前版本.

clang-tidy知道各种安全检查,所以我认为我已正确安装.例如,clang-tidy -list-checks foo.cpp -- | grep security产生这个:

clang-analyzer-security.FloatLoopCounter
clang-analyzer-security.insecureAPI.UncheckedReturn
clang-analyzer-security.insecureAPI.getpw
clang-analyzer-security.insecureAPI.gets
clang-analyzer-security.insecureAPI.mkstemp
clang-analyzer-security.insecureAPI.mktemp
clang-analyzer-security.insecureAPI.rand
clang-analyzer-security.insecureAPI.strcpy
clang-analyzer-security.insecureAPI.vfork
Run Code Online (Sandbox Code Playgroud)

是否有一些特殊的东西我需要做以启用检查,如modernize-use-overridemodernize-use-nullptr

小智 5

3.7之后(从clang-modernize移植)添加了现代化检查,但尝试添加-checks="*"以查看可用检查的完整列表.

clang-tidy -list-checks -checks="*" foo.cpp --
Run Code Online (Sandbox Code Playgroud)


Bap*_*cht 1

您是否尝试过使用 LLVM 的官方二进制文件:http://llvm.org/releases/download.html?也许 ClangOnWin 二进制文件未使用所有选项或类似选项进行编译。