2015-06-30 15 views
13

clang-check, -analyze seçeneğine sahiptir, bunun için yardım dizesinde "Statik analiz motoru çalıştır" yazıyor. Bu bayrakla, dosyamın birçoğunda clang-check'u çalıştırmaktan çok az çıktı görüyorum; Onsuz çok uyarı gördüm.-analyze seçeneği olmadan `clang-check` ne yapar? Clang'ın yerleşik statik analiz aracı olan

Statik analiz motoru, statik analiz aracı olan clang-check'un temel amacı çalıştırmıyor mu? Motoru çalıştırırken neden daha az çıkışını görüyorum ve araç bayrak olmadan ne yapıyor?

cevap

8

clang-check'un herhangi bir aksam olmadan çalıştırılması, -fsyntax-only modunu çalıştırır (doğru sözdizimini denetleme). Yalnızca -analyze belirtiyorsanız, statik analiz aracı yürütülür, yürütülen kontrollerin tam listesi için bkz. http://clang-analyzer.llvm.org/available_checks.html.

  • Not 1: clang-check ile çeşitli başka şeyler yapabilirsiniz, ör. AST dampingi.
  • Not 2: -fsyntax-only ve -analyze'u aynı anda belirtemezsiniz.
+0

'-analyze' gibi bir ses geliyor * her zaman * emit * daha * çıktı, görmüyorum davranış olarak görünmüyor ... –

+0

Hayır, öyle değil. -analyze '-fsyntax-only' ve kendi damalarını birleştirmez. –

+0

Oh, ikinci noktanı yanlış anladım gibi geliyor. Yani -analyze '(Clang'a göre) sözdizimsel olarak geçerli olmayan bir kod için hata yaymayacak mı? –