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.
Unzipping this and running it without an install does not work on Win 7 32-bit OS. I've installed it at home on Win 10 64-bit OS and it works great. However, I do not have admin rights at work and in the past, I've had to unzip it and run it manually and it worked. I currently get the error message:
[Window Title]
...\cppcheck-1.70\cppcheckgui.exe
[Content]
The version of this file is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need an x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher.
[OK]
Thanks! That did the trick.
For NON-ADMIN Users:
Download the correct OS version executable instead of just downloading the default MSI executable.
Unzip somewhere and rename all DLLs to their right names. Rename "_" to "-" for the API DLLs and remove their GUI extensions to make them DLLs.
Move qwindows.dll to a folder named "platforms" right under root.
Running the GUI executable (after renaming) should tell you wish DLLs it hasn't found and need to be renamed. One DLL needs a hyphen in the name.
For bulk renaming, I use BRU (Bulk Renaming Utility).
Last edit: Bassam Abdul-Baki 2015-09-09
On Windows 7 (64-bit), I found that after installing the Cppcheck 1.70 MSI, the Cppcheck.exe program would note start. A dialog box was displayed, saying
the program can't start [...] msvcp140.dll
Install the Microsoft Visual C++ Redistributable for Visual Studio 2015 to fix this. https://www.microsoft.com/en-us/download/details.aspx?id=48145
Thanks! It should be installed automatically by the installer. If you're good at Wix feel free to take a look at our script and see if you can tell us why that did not work.
This is not a good place to report installation problems. Use the Cppcheck issue tracker instead: http://trac.cppcheck.net
For others, this appears to be the open ticket for this issue: http://trac.cppcheck.net/ticket/6980