簡體   English   中英

Clang vs Clang tidy 是否檢測到相同的警告和錯誤?

[英]Do Clang vs Clang tidy detect the same warnings and errors ?

據我所知,Clan-tidy 可以做這些檢查https://clang.llvm.org/extra/clang-tidy/checks/list.html超過默認檢查集(clang-analysisr),Clang 也可以檢測錯誤和警告https://clang.llvm.org/docs/DiagnosticsReference.html他們能否檢測到不同的錯誤或警告列表?
Clang-Tidy 是否在后台使用 Clang? 兩者之間有什么聯系嗎?

是的,它們是不同的,也是共同點。 讓我從共同點開始:它們都是 LLVM 項目的一部分,眾所周知,該項目提供基於它構建的庫和可執行文件。

在這種情況下,clang 編譯器使用前端創建 AST 並在當時創建編譯器警告。 它通過優化和代碼生成進行了擴展。

Clang-tidy 使用相同的前端,然后在其上運行 AST 匹配器來檢測問題。

一般來說,編譯器警告的檢查成本很低,並且(幾乎)沒有誤報。 Clang-tidy 有昂貴的檢查或誤報風險更大的檢查。 后者還包含不太常見的檢查或風格檢查。

有些檢查確實相似,例如缺少覆蓋,但是,tidy 會捕獲所有情況,當文件中未使用覆蓋時,警告將被抑制。

一般來說,我喜歡啟用所有警告並禁用稍后應該修復的警告。 這將在編譯時作為副作用進行檢查。 Clang-tidy 通常在進度的后期運行(預提交或 CI)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM