xref: /llvm-project/clang/lib/Frontend/CompilerInstance.cpp (revision 546a676ae598f148e7e2a3ab08edfd5ab136d7df)
1 //===--- CompilerInstance.cpp ---------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #include "clang/Frontend/CompilerInstance.h"
11 #include "clang/Basic/Diagnostic.h"
12 #include "clang/Basic/FileManager.h"
13 #include "clang/Basic/SourceManager.h"
14 #include "clang/Basic/TargetInfo.h"
15 #include "llvm/LLVMContext.h"
16 using namespace clang;
17 
18 CompilerInstance::CompilerInstance(llvm::LLVMContext *_LLVMContext,
19                                    bool _OwnsLLVMContext)
20   : LLVMContext(_LLVMContext),
21     OwnsLLVMContext(_OwnsLLVMContext) {
22 }
23 
24 CompilerInstance::~CompilerInstance() {
25   if (OwnsLLVMContext)
26     delete LLVMContext;
27 }
28 
29 void CompilerInstance::createFileManager() {
30   FileMgr.reset(new FileManager());
31 }
32 
33 void CompilerInstance::createSourceManager() {
34   SourceMgr.reset(new SourceManager());
35 }
36