Polyspace® Code Prover™ run-time checks attempt to prove the presence or absence of certain types of run-time errors in C/C++ code. Code Prover analyses flag run-time errors based on abstract interpretation, without requiring code execution, code instrumentation, or test cases. Definite errors appear as red checks in the analysis results, absence of errors in green, and probable errors or inconclusive results in orange. See also Code Prover Result and Source Code Colors.
Polyspace flags these runtime issues:
Data flow checks: These issues are related to the flow of information in your code.
Numerical checks: These issues are related to arithmetic operations. Examples include
Division by zero.
Static memory checks: These issues arise from static memory management, such as array access or pointer dereference outside bounds.
Control flow checks: These issues arise from changes in control flow that leads to run-time errors.
C++ checks: These issues arise from C++ specific practices such as object oriented programming or exception handling.
Other checks: These issues arise from the use of certain C/C++ libraries.
Use these categories to understand the possible runtime errors in your code and how to resolve them.
- Data Flow Checks
Checks on variable reads, function return values and conditional statements
- Numerical Checks
Checks on arithmetic operations
- Static Memory Checks
Checks on memory access
- Control Flow Checks
Checks on function calls and loops
- C++ Checks
Checks specific to C++ code
- Other Checks
Checks on standard library function usage, pointer casts and