Posted
almost 11 years
ago
by
w-peuker
Great news! I especially like the new(?) virtualDestructor check. Why is it inconclusive?
|
Posted
almost 11 years
ago
by
Daniel Marjamäki
Cppcheck-1.66 has been released.
New checks:
- Compare pointer with '\0'
- Assigning boolean expression to floating point variables
Improvements:
- Much improved AST
- Much improved ValueFlow analysis
- ValueFlow and AST now used by much more checks
... [More]
, improving checking accuracy and performance
- Checking for self assignment now supports more complex expressions
- Returning references to literals or references to calculation results is detected
- Enhanced support for commutative operators in duplicate expression checking
- Improved template/enum parsing
- Much improved htmlreport
- Definition of POD types in .cfg files
- Definition of minsize for buffer arguments in .cfg files for buffer overflow checking
- Fixed handling of #error: Do not report them if -f and -D are used together
- New .cfg file for AVR platform
- Generate xml dump of AST/ValueFlow/SymbolDatabase/TokenList if --dump is given
- Improved performance in several cases
- Windows Builds: Now compiled with VS2013, linked against Qt 5.3.1
GUI:
- Platform settings are being saved now
- Improved handling of (invalid) .cfg files
- Use Win32W as default platform on Windows
Additionally, a large number of false positives and crashs has been fixed. [Less]
|
Posted
about 11 years
ago
by
Daniel Marjamäki
Cppcheck-1.65 has been released.
General changes:
Cppcheck requires a C++11 compiler supporting the common subset of features supported by GCC 4.4, Visual Studio 2010 and Clang 2.9
Problems with packaging and windows installer introduced in last
... [More]
release were fixed
Improvements:
Much improved support of complex combinations of function pointers, arrays and references
Better handling of syntax errors
Better detection of stack variables passed to free()
Much improved value flow analysis
More robust error detection in several checks due to usage of AST
Better handling of unknown Macros in function declarations
Allocation/Deallocation functions can be extend across different .cfg files
Better handling of some C++11 language features like enum class, in-class member initializers
Detect calling (std::)abs() with bool argument
New checks:
Check for noexcept and __attribute__((nothrow)) correctness
Check for unhandled exceptions when exception specifiers are used
Access to empty STL containers
Repositioning operation on a file opened in append mode
Find nested redundant if-statements (was experimental before)
Additionally, a large number of false positives and crashs has been fixed. [Less]
|
Posted
over 11 years
ago
by
Gianfranco Costamagna
Hi, Seems to be not building in debian at all...
http://pastebin.com/mTkibCQf
any advice?
thanks
|
Posted
over 11 years
ago
by
w-peuker
Great to know :) Sadly, there is still the 1.63.1 version for download :(
|
Posted
over 11 years
ago
by
Daniel Marjamäki
cppcheck-1.64 has been released.
Value Flow
A new value flow analysis has been added. It is generic so the same analysis can be reused by various checkers - previously many checkers have had their own value flow and control flow analysis. The new
... [More]
value flow analysis performs context sensitive cross-function analysis. All checkers that uses this will automatically have cross-function context sensitive value flow analysis. The new analysis is gradually introduced in the checkers - the old analysis in a checker is kept until it is redundant.
The new value flow analysis is so far used to detect:
division by zero
null pointer dereference
array index out of bounds
invalid function argument
Other Improvements
Improved configurations for gtk, posix, sdl, std, windows
Warn when using negative allocation size
Check 2nd parameter for memset
[Less]
|
Posted
over 11 years
ago
by
Daniel Marjamäki
Cppcheck-1.63 has been released.
Maintainers:
The .cfg files are needed by cppcheck. Either put them in a subfolder cfg
where the binary is. Otherwise compile cppcheck with CFGDIR to specify an
arbitrary path where you put the .cfg files.
New check:
... [More]
* Using pointer addition result in condition 'if (p+1)' - either a dereference
is forgotten or it depends on UB (the result is only 0 if there is overflow,
which is UB).
Improved checks:
* Leaks - ignoring return value of allocation function
* Uninitialized vars - check how uninitialized malloc data is used
* Rewritten 'calculation in sizeof' using syntax tree
* Rewritten 'clarify calculation' using syntax tree
* Rewritten 'logical disjunction' using syntax tree
* Rewritten 'duplicate expressions' using syntax tree
* Rewritten 'invalidFunctionUsage' that uses the *.cfg files
GUI:
* Library files can be enabled in the project dialog
* Suppressions can be specified in the project dialog
Other:
* Cppcheck is now continuosly scanning all the source code in the debian archive.
Results: http://cppcheck.sourceforge.net/devinfo/daca2-report/daca2.html
* Fixes of templates handling, hangs, crashes and false positives [Less]
|
Posted
almost 12 years
ago
by
Daniel Marjamäki
New checks
* Divide with variable and then compare to see if variable is 0
* Duplicated inherited member
Improved checking:
* handling of >> in templates
* format string checking
* comparing bool result with integer
* standard
... [More]
isgreater()/islower() functions
* standard math functions
* reassigning struct members
Htmlreport
xml-version 2 is now handled [Less]
|
Posted
almost 12 years
ago
by
Daniel Marjamäki
New checks:
* arithmetical usage of inf/nan result
* suspicious usage of comma in return statement
* sizeof(void)
Improved checking:
* better simplification of strlen
* improved handling of array member variables 'x[y].z..'
* Specific
... [More]
improvements in checks for buffer overruns, format strings, uninitialized variables
Command line:
* Using both --max-configs and -D. Normally when -D is used, Cppcheck will only check the given configuration. By using --max-configs also, you can tell Cppcheck to check more configurations.
* Added --library and --check-library.
Graphical user interface:
* Somewhat improved response when stopping checking
Cppcheck core:
* Extending checking with configuration files. Cppcheck has internal knowledge for standard C/C++ functions. Knowledge for libraries and environments can be specified using configuration files.
* Rules: added that allow you to check 'raw' code and 'normal' code. In the 'raw' code, the comments and #include are already taken care of, but the #define statements can be analysed. [Less]
|
Posted
about 12 years
ago
by
Daniel Marjamäki
Cppcheck 1.60.1 has been released. A bug in compiled patterns has been fixed.
|