Cppcheck is a static analysis tool for C/C++ code. It doesn't look for syntax errors, but for bugs that a compilation steps would not normally detected. It provides out of bounds checking, checking the code for each class, exception safety, memory leaks checking, warnings for obsolete function usage, invalid usage of STL, and tests for uninitialized variables and unused functions. There are IDE and VCS bindings for Code::Block, CodeLite, Eclipse, gedit, Hudson, Jenkins,
Mercurial, Tortoise SVN, Visual Studio.
1.6602 Aug 2014 13:48
New checks include to compare pointers with ' 0' and assigning boolean expression to floating point variables.
The AST was much improved, as was the ValueFlow analysis.
ValueFlow and AST now used by much more checks, improving checking accuracy and performance.
Checking for self assignment now supports more complex expressions.
Returning references to literals or references to calculation results is detected.
Enhanced support for commutative operators in duplicate expression checking.
Improved template/enum parsing.
Much improved htmlreport.
Generate xml dump of AST/ValueFlow/SymbolDatabase/TokenList if --dump is given.