Changelog History
Page 2
-
v1.84 Changes
June 12, 2018๐ New checks:
- Same rhs expression used in consecutive assignments
- โ Added more misra checkers
- Function overrides base class function but is not marked with the override keyword
๐ Improved checks:
- Identical inner condition
- Opposite expressions
- Call to virtual function in constructor or destructor
- Variable not initialized by private constructor
- A class that has dynamic allocation needs copy constructor, assignment operator and destructor
Misc:
- ๐ Various performance optimisations
- ๐ Better support for C++17
- โก๏ธ --template=gcc format has been updated to match gcc output better.
- We added a --template-location that can be used to format multiline messages.
- โก๏ธ Update --template so the piece of code with the warning can be shown
- Symbol-based suppressions
- XML based suppressions format
โ Addons:
- cert.py: Attempting to cast away const
- misc.py: String concatenation in array initialization
- misc.py: Passing struct to ellipsis function
- misc.py: Function overrides base class function but is not marked with the virtual keyword
๐ Compiling: We dropped support for some old compilers. From now on you need gcc 4.6 or later / visual studio 2013 or later / other compiler with c++11 support.
-
v1.83 Changes
April 02, 2018๐ป Command line:
- ๐ fixes in parser
- ๐ Improved loading of platform files.
GUI:
- few minor improvements in user interface
- Code preview
- โ Added MISRA addon integration
- Platform can be selected in project settings
- ๐ Fixed issue when loading xml results file
โ Addons:
- ๐ We are now officially releasing our MISRA addon. So far it supports MISRA C 2012.
-
v1.82 Changes
January 14, 2018๐ Bug fixes:
- ๐ Better handling of namespaces
- ๐ Fixed false positives
- ๐ Fixed parsing of compile databases
- ๐ Fixed parsing of visual studio projects
โจ Enhancements
๐ New check; Detect mistakes when there are multiple strcmp() in condition
Example:if (strcmp(password,"A")==0 || strcmp(password,"B")==0 || strcmp(password,"C"))
There is a missing '==0', and therefore this condition is always true except when password is "C".
๐ New check; pointer calculation result can't be NULL unless there is overflow
Example:someType **list_p = ...; if ((list_p + 1) == NULL)
The result for '(list_p + 1)' can't be NULL unless there is overflow (UB).
๐ New check; public interface of classes should be safe - detect possible division by zero
Example:class Fred { public: void setValue(int mul, int div) { value = mul / div; // <- unsafe } ...
This check does not consider how Fred::setValue() is really called.
If you agree that the public interface of classes should always be safe; it should be allowed to call all public methods with arbitrary arguments, then this checker will be useful.๐ Fixed a few false negatives
More information in the cfg files
-
v1.81 Changes
October 07, 2017CPPCHECK:
- ๐ New warning: Check if condition after an early return is overlapping and therefore always false.
- ๐ Improved knowledge about C/C++ standard, windows, posix, wxwidgets, gnu
- ๐ Better handling of Visual Studio projects
GUI:
- ๐ Compile: Qt5 is now needed to build the GUI
- Compile: New qmake flag HAVE_QCHART
- Project: You can now run cppcheck-addons
- Project: We have integrated clang-tidy
- ๐ Results view: Reload last results (if cppcheck build dir is used) when GUI is started
- โ Results view: Tag the warnings with custom keywords (bug/todo/not important/etc..)
- โ Results view: Shows when warning first appeared (since date)
- โ Results view: Suppress warnings through right-click menu
- ๐ Statistics: Added charts (shown if Qt charts module is enabled during build)
-
v1.80 Changes
July 29, 2017Checking improvements:
- โ Added platform for Atmel AVR 8 bit microcontrollers (avr8)
- ๐ Better 'callstacks' in cppcheck messages
- ๐ Improved gnu.cfg, posix.cfg, wxwidgets.cfg and std.cfg, added motif.cfg
- ๐ Various improvements to AST, ValueFlow analysis and template parsing
๐ป Command line changes:
- ๐ Deprecated command line argument --append has been removed
- ๐ New command line argument --plist-output to create .plist files
- ๐ New command line argument --output-file to print output to file directly
- Check OpenCL files (.cl)
GUI:
- ๐ Support export of statistics to PDF
- Several small usability improvements
โ Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.
-
v1.79 Changes
May 13, 2017General changes:
- C++ code in C files is rejected now (use --language=c++ to enforce checking the code as C++)
- Write function access type to XML dump
Checking improvements:
- ๐ Improved configuration extraction in preprocessor
- ๐ Improved accuracy of AST
- ๐ Improved template parsing
- ๐ Improved support for (STL) containers in SymbolDatabase
- ๐ Improved support for C++11's 'auto' type
- ๐ Experimental support for uninitialized variables in ValueFlow analysis
- โ Added qt.cfg and sfml.cfg, improved several existing .cfg files
GUI:
- ๐ Use CFGDIR macro
๐ Windows installer:
- ๐ We have dropped support for Windows XP in the precompiled binary. It was too much work to maintain the toolset.
โ Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.