Cppcheck News

Cppcheck Open-Source 2.12 released

Written by Daniel Marjamäki | Sep 20, 2023 9:52:00 AM

We are happy to announce the release of Cppcheck Open-Source 2.12!

Cppcheck introduces new checks such as uselessOverride for redundant overriding functions and knownPointerToBool for unnecessary pointer-to-bool conversions. Enhancements include expanded type checking for truncLongCastAssignment and truncLongCastReturn, and more robust detection of const correctness in constParameter* and constVariable* checks. GUI improvements highlight activated checkers and critical errors post-analysis, with a new interface feature to report activated checkers via --checkers-report. Deprecations include the qmake build system and specific command-line options. Other changes enforce the use of Qt6 without fallback to Qt5, handle addon execution failures as internalError, and remove "Win32" configurations from Visual Studio projects.

Release notes:

  • New checks:
    • uselessOverride finds overriding functions that either duplicate code from or delegate back to the base class implementation
    • knownPointerToBool finds pointer to bool conversions that are always true or false
  • Improved checking:
    • truncLongCastAssignment and truncLongCastReturn check additional types, including float/double/long double
    • duplInheritedMember also reports duplicated member functions
    • constParameter*/constVariable* checks find more instances of pointers/references that can be const, e.g. when calling library functions
  • GUI:
    • Show in statistics which checkers have been activated in latest analysis
    • Make it more visible if there has been critical errors that caused checkers to be skipped
  • Changed interface:
    • Write how many checkers was activated after a run
    • Added --checkers-report that can be used to generate a report in a file that shows what checkers was activated and disabled
  • Deprecations:
    • The qmake build system has been deprecated and will be removed in a future version.
    • Command-line option '--template ' is deprecated and will be removed in 2.13 - please use '--template=' instead.
    • Command-line option '--template-location ' is deprecated and will be removed in 2.13 - please use '--template-location=' instead.

      Other:

      • "USE_QT6=On" will no longer fallback to Qt5 when Qt6 is not found.
      • When the execution of an addon fails with an exitcode it will now result in an 'internalError' instead of being silently ignored.
      • "Win32" configurations have been removed from the bundled Visual Studio solution and projects. You might still be able to build 32-bit binaries using CMake but that is untested and unmaintained.