Releases: danmar/cppcheck
1.81
CPPCHECK:
- 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
GUI:
- 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)
Cppcheck 1.80
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)
GUI:
- 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.
1.79
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
GUI:
- 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.
1.78
General changes:
- Reduced memory usage by up to 10% by reducing size of token list
New checks:
- Mismatching argument names between function declaration and definition
- Detect classes which have a copy constructor but no copy operator and vice versa
Checking improvements:
- Improved matching of overloaded functions
- Improved ValueType analysis, especially related to allocations with "new" and C++11's "auto"
- Improved support for C++11 brace initialization
- Improved ValueFlow analysis
- Improved template parsing
- Improved detection of memory leaks
- Improved nullpointer checking when nullptr and NULL are used
- Detect array out of bounds across compilation units
- Extended windows.cfg, posix.cfg and std.cfg
Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.
Cppcheck-1.77
General changes:
- Added flag --cppcheck-build-dir to allow incremental analysis and inter-file checking
- Improved --project support for Visual Studio solutions
Removed checks:
New checks:
- Detect pointer overflow
- Detect usage of variable after std::move or std::forward
Checking improvements:
- Warn about number and char literals in boolean expressions
- Improved checking for variables modified but not used again
- Libraries: Added support to specify
- Improved ValueFlow, especially related to function return values and casts
- Improved simplification of Null values to allow more accurate checking
- Several improvements to windows.cfg, posix.cfg, gnu.cfg and std.cfg
- Reimplemented check for using iterators of mismatching containers
GUI:
- Support build directory as in CLI
Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.
Cppcheck-1.76.1
Bugfix release
- avoid hang (http://trac.cppcheck.net/ticket/7753)
1.76
General changes:
- Completed CWE mapping
- Support opening project files of external build systems, including CMake and Visual Studio (CLI: --project)
- XML format version 1 is deprecated and will be removed in 1.81
Removed checks:
New checks:
Checking improvements:
- Improved checking for conditions that are always true/false
- Improved format string checking: Support more functions, support %h and %hh
- Improved std.cfg, windows.cfg and qt.cfg; added wxwidgets.cfg
- Improved ValueFlow analysis
- Improved SymbolDatabase accuracy
- Improved Preprocessor (simplecpp)
- Support base class methods in Library
GUI:
- Support opening project files from GUI
- Added .desktop file
Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.
1.75
General changes:
- Replaced internal preprocessor by the brand-new preprocessor 'simplecpp'
- Improved Windows installer: Install a copy of the license instead of asking to accept it
- The Windows x64 binaries are now compiled with profile guided optimization, resulting in a speedup of 11%
- Improved manual, especially the chapter about Libraries
- Improved CWE mapping
- --append is deprecated and will be removed in 1.80
New checks:
- Detect passed by value for non-const variables and print message only if type size justifies optimization
Checking improvements:
- Implemented support for trailing return types (C++11)
- Improved support for digit separators (C++14)
- Improved support for enum types in buffer overflow checking
- Better handling of volatile variables when checking for redundant assignments
- Properly support integer suffixes i64 and ui64
- Support function arguments with default value in Libraries
- Always set file0 attribute of error messages to identify the source file cppcheck was checking
Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.
1.74
General changes:
- Improved CWE mapping of messages
- Git pre-commit hook checks only added or modified files
Checking improvements:
- Replaced simplification of enums by keeping and parsing them in the SymbolDatabase
- Added support to Library for specifying the parameter used by allocating/deallocating functions
- Improved support for integers defined in Libraries
- Improved accuracy of ValueType analysis
- Improved accuracy of VarID assignment, especially when dealing with structs and unions
- Improved performance of VarID assignment, checking for struct member usage, buffer overrun checking and several simplifications
- Added support for lots functions to windows.cfg and posix.cfg
- Better support for operator overloads
- Detect buffer overflows when %c is used with a width
- Improved checking for sizeof() taken of wrong type
- Support char literals when checking for conditions being always true or false
- Reimplemented check for usage of boolean results used in bitwise operations based on ValueType
- Improved checking for c_str() usage
Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.
1.73
General changes:
- CWE mapping of messages
- Translated manual to Japanese language
Removed checks:
- Checks for variables hiding enums or typedefs have been removed
New checks:
Checking improvements:
- Improved ValueType a lot, use it in more checks
- Improved VarId support for template constructors, namespaces and references as class members
- Improved libraries, especially gnu.cfg, posix.cfg and windows.cfg
- Improved simplification of enums and templates
- Better distinguishing between possible and known null pointer dereferenciations
- Assume integers to be signed by default
- better support for __cplusplus macro in preprocessor
- Preprocessor directives for addons
- New tools: times-vs.py, reduce.py
GUI:
- Detect Geany and QtCreator
- Make statistics dialog shown when checking is finished optional
Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.