Cppcheck-1.70 has been released

General changes:

- New version of .cfg file format, adding support for namespaces and declaring several functions at once

- Support building x64 installer for Windows; Both x64 and x86 builds are now provided

- Warn about deprecated options --suppressions and --exitcode-suppressions. They will be removed in future

- Added debugging option --debug-normal, which prints out debug output before second stage simplification

New checks:

- Warn about modifying string literals

- Detect declaration of variable length arrays with negative size

- Warn about implicit type conversion from int to long

- Warn about redundant code in conditions like (y || (!y && z))

- Detect conditions with known result

- Race condition: non-interlocked access after InterlockedDecrement()

- Detect unused 'goto' labels

Removed checks:

- Do no longer warn about a bug in scanf implementation of ancient glibc versions

- Multifile analysis (added in 1.69) has been removed because it did not work

- Removed ExecutionPath checker, which has been superseeded by ValueFlow analysis

Improvements:

- Support hexadecimal floating point numbers (C99)

- Support [[deprecated]] (C++14)

- Improved handling of sizeof()

- Improved handling of reserved keywords

- Better handling of C declaration specifiers; support complex/_Complex (C99)

- Better handling of ternary operator in ValueFlow analysis

- Lots of improvements to .cfg files, especially std.cfg, which now supports namespace std

- Improved performance and memory usage of Preprocessor

- Improved performance of matchcompiler

- Reduced Disk IO when ignoring paths

- Removed several obsolete simplifications

- Added python addons: naming.py, threadsafety.py and cert.py

GUI:

- Support printing

- Added item "Open containing folder" to context menu

Additionally, lots of false positives and bugs have been fixed and several existing checks have been improved.