List of tools for static code analysis
C, C++

List of tools for static code analysis

Section Title: C, C++
Table Section Text: None

Tool	Latest release	Free software	Duplicate code	Notes

Astrée	No; Proprietary	finds all potential runtime errors and data races by abstract interpretation, can prove their absence, and can prove functional assertions; tailored towards safety-critical C code (e.g.

Axivion Bauhaus Suite	No; Proprietary	A static code analysis tool suite for Ada, C, C++, C#, and Java code that performs various analyses such as architecture checking, interface analyses, MISRA checking, and clone detection.

BLAST – (Berkeley Lazy Abstraction Software verification Tool)	2.7.2	Yes	An open-source software model checker for C programs based on lazy abstraction (follow-on project is CPAchecker.).

Clang	8.0.0	Yes	An open-source compiler that includes a static analyzer.

CLion	2019.1	No; Proprietary	An IDE with a built-in source code analysis.

Coccinelle	1.0.7	Yes	An open-source source code pattern matching and transformation.

Coverity	No; Proprietary	A static analysis tool for C/C++.

Cppcheck	Yes; GPL	Open-source tool that checks for several types of errors, including use of STL.

Cppdepend	2019.1	No;Proprietary	Simplifies managing a complex C/C++ code base by analyzing and visualizing code dependencies, by defining design rules, by doing impact analysis, and comparing different versions of the code.

cpplint	Yes	An open-source tool that checks for compliance with Google's style guide for C++ coding.

ECLAIR	A platform for the automatic analysis, verification, testing and transformation of C and C++ programs.

Eclipse	Yes	An open-source IDE that includes a static code analyzer.

Fluctuat	Abstract interpreter for the validation of numerical properties of programs.

Frama-C	Yes	An open-source static analysis framework for C.

Goanna	A software analysis tool for C/C++.

GrammaTech CodeSonar	A static program analysis tool for C/C++, see above.

Helix QAC	Formerly PRQA QA·C and QA·C++, deep static analysis of C/C++ for quality assurance and guideline/coding standard enforcement with MISRA support.

Infer	Yes	Developed by an engineering team at Facebook with open-source contributors. Targets null pointer and other memory problems.

Klocwork Static Code Analysis	A static analysis tool for C/C++

Lint	The original, from 1978, static code analyzer for C.

LDRA Testbed	A software analysis and testing tool suite for C/C++.

Parasoft C/C++test	A C/C++ tool that does static analysis, unit testing, code review, and runtime error detection; plugins available for Visual Studio and Eclipse-based IDEs.

PC-Lint	A software analysis tool for C with partial support for C++2011.

Polyspace	Uses abstract interpretation to detect and prove the absence of run time errors, Dead Code in source code as well as used to check all MISRA (2004, 2012) rules (directives, non directives).

SLAM project	a project of Microsoft Research for checking that software satisfies critical behavioral properties of the interfaces it uses.

Sparse	Yes	An open-source tool designed to find faults in the Linux kernel.

SonarQube	No	An open-source tool which offers C/C++ support via a commercial license

Splint	Yes	An open-source tool designed to find faults in the Linux kernel.

Visual Studio	No	An IDE that provides static code analysis for C/C++ both in the editor environment and from the compiler command line.

Sentence(s)

Sparse is a static tool, which was designed for kernel.

final_sentence: Sparse is a static tool, which was designed for kernel.