我怎样才能实现铿锵有力的现代化"检查?

时间:2015-11-16 19:53:25

标签: clang clang++ clang-static-analyzer clang-tidy

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

"现代化"检查列出here,但该页面似乎记录了Clang 3.8,我安装的版本是3.7。但是,版本3.7是LLVM Download Page列出的当前版本。

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

启用modernize-use-overridemodernize-use-nullptr等检查需要做些什么特别的事情吗?

2 个答案:

答案 0 :(得分:5)

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

clang-tidy -list-checks -checks="*" foo.cpp --

答案 1 :(得分:1)

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