LLVM这个名字最初的意思是底层虚拟机(Low Level Virtual Machine)的缩写,它是由UIUC开发的一个开源项目。现在LLVM的意义已经远远超越它最初的意思,所以现在LLVM就是整个项目的名称。
The LLVM Project is a collection of modular and reusable compiler and toolchain libraries / technologies.
LLVM is not a compiler! But, many compliers are built on LLVM such as Clang.
本文中的实验环境选择使用Ubuntu系统,请确保你已经正确安装了LLVM及Clang。
一、CSA(Clang Static Analyzer)简介
The Clang Static Analyzer 【1】 is a source code analysis tool that finds bugs in C, C++, and Objective-C programs. CSA是Clang项目的一部分,而且完全开源。注意这里的静态分析,表示并不需要运行程序——CSA is built on Clang based on symbolic ex