Cppcheck v2.3 Release Notes

Release Date: 2020-12-05 // over 3 years ago
  • ๐Ÿ‘Œ Improved C++ parser:

    • types
    • wrong operands in ast
    • ๐Ÿ‘ better simplification of templates

    ๐Ÿ‘Œ Improved clang import, various fixes.
    ๐Ÿ‘Œ Improved value flow analysis

    ๐Ÿ›  Fixed false positives

    ๐Ÿ‘Œ Improved configuration in library files

    • boost.cfg
    • โœ… googletest.cfg
    • qt.cfg
    • ๐Ÿ windows.cfg
    • wxwidgets.cfg

    โž• Added several Misra rules:

    • 6.1
    • 6.2
    • 7.2
    • 7.4
    • 9.2
    • 10.2
    • 15.4

    โž• Added platforms:

    • elbrus e1c+
    • pic
    • pic8
    • mips

Previous changes from v2.2

  • ๐Ÿ†• New checks:

    • ๐Ÿ”’ incorrect usage of mutexes and lock guards
    • Dereference end iterator
    • Iterating a known empty container
    • outOfBounds check for iterators to containers

    โœ‚ Removed 'operator=' check that ensures reference to self is returned. That is not about safety.

    ๐Ÿ‘Œ Improved parser

    • ๐Ÿ›  various ast fixes

    ๐Ÿ“œ Clang parser

    • The Clang import feature in Cppcheck should be considered to be experimental for now. There are problems.

    ๐Ÿ‘Œ Improved bug hunting

    • variable constraints
    • handling of multidimension arrays
    • function calls, execute functions that are in same TU
    • ๐Ÿ‘Œ improved handling of containers
    • several improvements for uninitialized variables check
    • ๐Ÿ‘Œ improved analysis of for loops
    • โž• added a hash value for warnings that can be used for suppressions

    ๐Ÿ‘Œ Improved data flow

    • one more heuristic for ternary operators
    • ๐Ÿ‘Œ improved data flow for containers


    • ๐Ÿ›  Fixed some addon execution problems when there are spaces etc


    • ๐Ÿ›  Fix handling of tags
    • Exclude files


    • several result files can be combined into 1 output


    • comments can be added at end of suppression in suppressions file