static analysis of C/C++ code
Parser:
Core:
Changed output:
Misra:
New checks:
Fixed windows installer, a file needed by the Misra addon was missing.
Fixed false negatives and false positives
New check; Detect one definition rule violations
Various improvements:
Improved C++ parser:
Improved clang import, various fixes. Improved value flow analysis
Fixed false positives
Improved configuration in library files
Added several Misra rules:
Added platforms:
New checks:
Removed 'operator=' check that ensures reference to self is returned. That is not about safety.
Improved parser
Clang parser
Improved bug hunting
Improved data flow
CLI:
GUI:
cppcheck-htmlreport:
Suppressions:
This is a minor release.
We have tweaked build scripts.
There was a couple of bug fixes.
New check:
The command line is not changed drastically. Your old cppcheck scripts should work as before.
Compiling: There is a new dependency Z3. When compiling with the Makefile it is highly recommended to use "USE_Z3=yes".
Improved clang-tidy integration
Several fixes to;
Clang is a C/C++ compiler that has a very robust and well made parser.
Cppcheck will always use its internal parser by default. However there is now an option to use the Clang parser instead.
It is recommended that you use the default internal Cppcheck parser unless you notice that it fails to parse your code properly (syntax errors, strange false alarms).
There is a new "soundy" analysis in Cppcheck that should detect most bugs. You should expect false alarms, however the false alarms will not be overwhelming.
This new "soundy" analysis is not intended to replace normal Cppcheck analysis. There are use cases where false alarms can not be tolerated.
We have added 1 checker and that checks for division by zero:
You can read more about this analysis in the "Bug hunting" chapter in the manual.
New check:
Improved checking:
CERT:
MISRA:
Command line:
Compiling:
Improved checking:
CERT:
MISRA:
GUI:
New checks:
Added --library configuration files for:
Better handling of C++14 and C++17
Command line:
GUI:
Makefile: Please use MATCHCOMPILER=yes instead of SRCDIR=build when compiling to enable the match compiler.
Cert:
Misra: