据我所知,部落可以进行这些检查https://clang.llvm.org/extra/clang-tidy/checks/list.html
除了默认检查设置(clang-analyser)
而且Clang也可以检测错误和警告
https://clang.llvm.org/docs/DiagnosticsReference.html
他们可以检测到不同的错误或警告列表吗?
Clang-Tidy是否在后台使用Clang?
两者之间有联系吗?
答案 0 :(得分:1)
是的,它们是区别和共同点。让我从一个共同点开始:它们都是LLVM项目的一部分,众所周知,LLVM项目是在其基础上提供库和可执行文件。
在这种情况下,clang编译器使用前端创建AST并在那时创建编译器警告。它通过优化和代码生成进行了扩展。
Clang-tidy使用相同的前端,然后在其上运行AST匹配器以检测问题。
通常,编译器警告很便宜,并且几乎不包含误报。 lang整洁的支票价格昂贵,或者误报风险更大。后者还包含较不常用的检查或样式检查。
某些检查确实很相似,例如缺少覆盖,但是,tidy会捕获所有情况,当文件中未使用覆盖时,警告会被抑制。
通常,我喜欢启用所有警告,并禁用以后应修复的警告。编译时将检查是否有副作用。 Clang-tidy通常在进度(预提交或CI)中运行得较晚。