Cppcheck-1.56 has been released.
Commandline/Settings changes:
- Code is considered to be C++11 or C11 compatible by default, added new standards to --std= option: c89, c11, c++03
- '--inconclusive' has been made "official" and shown in help dialog
Improvements:
- Uninstanciated templates are no longer removed from token list
- Support 'using namespace std;' - 'std ::' added to C++ standard library types when 'using namespace std;' is found
- Several error messages have been improved to be more understandable and consistent
- Checking of preprocessor configurations that are considered invalid, because the macro used in #if is also used in the code, is now skipped.
New checks:
- Detect incomplete array fill with memcpy/memset/memmove (inconclusive check)
- Detect ineffective statememts like '*foo++;'
- Check for negative right operand passed to shift operator
- Detect comparison of char* variable with string literal
- Check for return value of std::remove() and container.empty() being used
- Detect member functions that can be declared static
- Detect const variables that can be made a const reference
GUI:
- Korean translation added
Additionally, lots of false positives have been fixed and several existing checks have been improved.