7

我刚刚安装了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

我需要做一些特别的事情来启用和等检查modernize-use-overridemodernize-use-nullptr

4

2 回答 2

5

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

clang-tidy -list-checks -checks="*" foo.cpp --
于 2016-01-08T20:53:36.960 回答
1

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

于 2015-12-16T07:05:58.320 回答