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
preprocessorErrorDirectiveandsyntaxErrorerrors 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
CXXOPTSandLDOPTSto extend existingCXXFLAGSandLDFLAGS. - Added make variables
CPPOPTSto extend existingCPPFLAGS. CPPFLAGSare not longer being passed to the linker command forcppcheckandtestrunner.- 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
WIN32define. - Added
DISALLOW_PROCESS_EXECUTORfor building without fork().
The changes focus heavily on stability (crash fixes), C/C++ compatibility, reducing false positives, and improving performance.