Cppcheck Versions Save

static analysis of C/C++ code

1.78

7 years ago

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.

1.77

7 years ago

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 <returnValue>
  • 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.

1.76.1

7 years ago

Bugfix release

1.76

7 years ago

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

7 years ago

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

8 years ago

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

8 years ago

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.