1. CompilerInstance
CompilerInstance对象为编译器实例对象,管理着整个编译过程中需要用到的所有资源,在应用层通常new一个CompilerInstance对象。

下面代码为该对象的构造函数,其中两个输入参数默认输入的都是空指针,构造函数主要任务就是分配了一个CompilerInvocation对象,其他重要的数据结构都是单独构造然后再和CompilerInstance对象关联起来的。
C++
CompilerInstance::CompilerInstance(
std::shared_ptr<PCHContainerOperations> PCHContainerOps,
InMemoryModuleCache *SharedModuleCache)
: ModuleLoader(/* BuildingModule = */ SharedModuleCache),
Invocation(new CompilerInvocation()),
ModuleCache(SharedModuleCache ? SharedModuleCache
: new InMemoryModuleCache),
ThePCHContainerOperations(std::move(PCHContainerOps)) {}