Data Flow Analysis
- Array Index Out Of Bounds
Reports array or pointer variable access expressions where index may be out of bounds of an array or allocated buffer.
- Constant Function Result
Reports the functions where the return value is always the same constant.
- Constant Parameter
Reports function parameters that always have the same value.
- Constant condition
Reports conditions that are always true or false and expressions whose value is statically proven to be constant.
- Context-sensitive analysis
Reports the issues found by the context-sensitive data flow analyser.
- Dangling Pointer
Reports the usages of the pointers that refer to the memory already deleted by the delete operator or the free(void* ptr) function.
- Endless Loop
Reports the for, while, do while, and goto statements that exit only by throwing an exception.
- Infinite Recursion
Reports methods and functions with infinite recursion.
- Interprocedural analysis
Interprocedural summary-based static code analysis.
- Local Value Escapes Scope
Reports the references to local values that escape the function Example: int *escapeLocalScope() { int lv = 100; return &lv; }.
- Loop condition isn't updated inside the loop
Reports the loop conditions that are not updated inside the loop.
- Memory Leak
Reports the allocations of memory (either new operator or malloc() function) that were not released before they become non-accessible.
- Not Initialized Field
Reports the fields that may have not been initialized before their usage.
- Null Dereference
Reports dereferences of the pointers that may contain nullptr.
- Unreachable Calls Of Function
Reports the functions which calls are never used.
- Unreachable Code
Reports the code pieces that are never executed in any control flow and can be removed safely.
- Unused Local Variable
Reports the local variables that are declared but never accessed for reading.
- Unused Parameter
Reports the parameters that are declared but never accessed for reading and can be removed safely.
- Unused Value
Reports the variable values that are never used after being assigned.