All Versions
Latest Version
Avg Release Cycle
87 days
Latest Release
1287 days ago

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


    • ๐ŸŽ 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:

    • Attempting to cast away const
    • String concatenation in array initialization
    • Passing struct to ellipsis function
    • 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.


    • 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

    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

    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

    class Fred {
    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, 2017


    • ๐Ÿ†• 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


    • ๐Ÿ— 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, 2017

    Checking 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)


    • ๐Ÿ‘Œ 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, 2017

    General 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


    • ๐Ÿ‘‰ 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.