Checking the source with the clang static analyzer
The clang static analyzer is a tool that performs additional checks on C, C++, and Objective C source code. The checks that are performed by the static analyzer are more thorough than the checks the compiler performs. They are also more costly in terms of time and required resources. The static analyzer has a set of checkers, which check for certain bugs.
The tool performs a symbolic interpretation of the source code, which looks at all code paths through an application and derives constraints on the values used in the application from it. Symbolic interpretation is a common technique that’s used in compilers, for example, to identify constant values. In the context of the static analyzer, the checkers are applied to the derived values.
For example, if the divisor of a division is zero, then the static analyzer warns us about it. We can check this with the following example stored in the div.c
file:
int divbyzero(int...