github danmar/cppcheck 2.19.0

9 hours ago

Release Notes for Cppcheck 2.19

Major bug fixes & crashes:

  • Crash in CheckClass::checkConst()
  • fuzzing crash (assert) in Token::update_property_info()
  • Crash in checkConstVariable()
  • Crash in valueFlowLifetimeClassConstructor()
  • GUI: scratch pad crash
  • Assert failure in getParentValueTypes()
  • Crash in simplecpp::Macro::expand()
  • crash in Tokenizer::simplifyCPPAttribute()

New checks:

  • Detect zero initialization of unions in which its largest member is not
    declared as the first one. Depending on the compiler, there's no guarantee
    that the complete union will be zero initialized in such scenarios leading to
    potential access of uninitialized memory.
  • Added warning when main() throws an exception

C/C++ support:

  • Fixed syntax error for C++23 lambda without parameter clause
  • Added support for typeof and __typeof operators

GUI:

  • Fix bug: checks multiple configurations even though user provides defines

Changed interface:

  • some preprocessorErrorDirective and syntaxError errors got more specific error IDs.
  • Removed deprecated platforms unix32-unsigned and unix64-unsigned
  • Improve progress value
  • Added float bits support in platform configuration
  • Fixed --showtime not accounting for addons

Performance:

  • Introduced cache for followAllReferences() calls

Infrastructure & dependencies:

  • Removed deprecated support for builds with Qt5.
  • Added make variables CXXOPTS and LDOPTS to extend existing CXXFLAGS and LDFLAGS.
  • Added make variables CPPOPTS to extend existing CPPFLAGS.
  • CPPFLAGS are not longer being passed to the linker command for cppcheck and testrunner.
  • Updated Qt to 6.10.0 (official Windows release only).
  • The official Windows binary is now built against Boost 1.89 for increased performance.
  • Updated to simplecpp 1.6.2
  • The Visual Studio builds not longer set the WIN32 define.
  • Added DISALLOW_PROCESS_EXECUTOR for building without fork().

The changes focus heavily on stability (crash fixes), C/C++ compatibility, reducing false positives, and improving performance.

Don't miss a new cppcheck release

NewReleases is sending notifications on new releases.