Release notes for 1.48
There are no major new features in 1.48. There are more and better
checks.
New check: Wrong usage of ! operator in conditions. Example: if
(!x == 0) {
New check: Use "throw" without arguments to rethrow exceptions.
New check: Comparison of substring with string literal will
always/never match because size doesn't match.
New check: Postfix increment of boolean
New check: Clarify condition with parantheses (when there are
assignment + comparison) Example: if (a = b > 0) {
Release notes for 1.47
It is now possible to exclude files and folders from the analysis.
Use -i on the command line (i=ignore).
Custom rules can now be created using regular expressions. To read
more about creating custom rules, see
http://sourceforge.net/projects/cppcheck/files/Articles/
A new XML format is launched. To use this format, the --xml-version=2
is used. The new xml format is incompatible with the xml format
used in previous versions. The old XML format will still be used
unless --xml-version=2 is given, so your existing scripts, tools
and plugins should still work.
New check: sizeof used on array variable that is a function parameter.
The expected bahaviour is most likely that the sizeof result is
the size of the array, but the actual sizeof result is the size of
the pointer.
New check: catching exception by value. It is better to catch by
reference for various reasons.
New check: memset calls filling 0 bytes. The given size might be
wrong.
Release notes for 1.46
This release has improvements and bug fixes.
We fixed 153 tickets, and that is a somewhat "usual" number for a Cppcheck release.
The report has been improved. New severities were added to make the messages more informational. The possible severities are now:
* error
* warning
* style
* performance
This has no effect on the command line flags nor the xml report. The command line flags and the xml report is fully compatible with previous versions.
These are the new checks that were added:
* detect dangerous usage of string::c_str()
* warn for unused variable when only doing malloc/free
* warn when assert has side effects
* warn for mutual exclusion over ||. The condition is always false. Example: 'if (x != 1 || x != 4)'
More details about all the fixed tickets can be found here:
http://sourceforge.net/apps/trac/cppcheck/milestone/1.46
Release notes for 1.46.1
Fix segmentation fault.
cppcheck is a tool for static C/C++ code analysis intended to
complement the checking of the compiler. It checks for memory
leaks, mismatching allocation-deallocation, buffer overrun, unused
functions, coding style, and much more.