-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
LLVM Cookbook
By :
In this recipe, you will learn about the static analysis of code, which is carried out by the Clang Static Analyzer. It is built on top of Clang and LLVM. The static analysis engine used by the Clang Static Analyzer is a Clang library, and it has the capability to be reused in different contexts by different clients.
We will take the example of the divide-by-zero defect and show you how the Clang Static Analyzer handles this defect.
You need to build and install LLVM along with Clang.
Perform the following steps:
Create a test file and write the test code in it:
$ cat sa.c int func() { int a = 0; int b = 1/a; return b; }
Run the Clang Static Analyzer by passing the command-line options shown in the following command, and get the output on the screen:
$ clang -cc1 -analyze -analyzer-checker=core.DivideZero sa.c sa.c:3:10: warning: Division by zero int b = 1/a; ~^~ 1 warning generated.
The static analyzer core performs...
Change the font size
Change margin width
Change background colour