Jakie narzędzia do analizy statycznej C++ typu open source są dostępne?

Jakie narzędzia do analizy statycznej C++ typu open source są dostępne?

CppCheck to open source i wieloplatformowy.

Mac OSX:

brew install cppcheck

Jeśli chodzi o kompilator GNU, gcc ma już wbudowaną opcję, która włącza dodatkowe ostrzeżenie do tych z -Wall. Opcja to -Weffc++ i chodzi o naruszenie niektórych wytycznych Scotta Meyersa opublikował w swoich książkach „Efektywny i bardziej efektywny C++ ".

W szczególności opcja wykrywa następujące elementy:

  • Zdefiniuj konstruktor kopiujący i operator przypisania dla klas z dynamicznie alokowaną pamięcią.
  • Preferuj inicjalizację do przypisania w konstruktorach.
  • Uczyń destruktory wirtualnymi w klasach bazowych.
  • Niech "operator=" zwraca odniesienie do *tego.
  • Nie próbuj zwracać referencji, gdy musisz zwrócić obiekt.
  • Rozróżnia przedrostkowe i przyrostkowe formy operatorów inkrementacji i dekrementacji.
  • Nigdy nie przeciążaj „&&”, „||” lub „”.

Na razie w fazie rozwoju, ale clang przeprowadza analizę C i jest przeznaczony do obsługi C++ w czasie. Jest to część projektu LLVM.

Aktualizacja :Chociaż strona docelowa mówi „Analizator jest ciągłym procesem w toku”, jest teraz udokumentowana jako statyczny analizator zarówno dla C, jak i C++.

Pytanie:Jak mogę uruchomić GCC/Clang do analizy statycznej? (tylko ostrzeżenia)

Opcja kompilatora:-fsyntax-only