我刚刚安装了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-override
和modernize-use-nullptr
等检查需要做些什么特别的事情吗?
答案 0 :(得分:5)
现代化检查在3.7之后添加(从clang-modernize移植),但尝试添加-checks="*"
以查看可用检查的完整列表。
clang-tidy -list-checks -checks="*" foo.cpp --
答案 1 :(得分:1)
您是否尝试过使用LLVM的官方二进制文件:http://llvm.org/releases/download.html?也许ClangOnWin二进制文件不会使用所有选项或类似的东西进行编译。