CompilerInstance.cpp revision 16b7449d86b843d0926b04f87104cf3fff7149fe
12a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar//===--- CompilerInstance.cpp ---------------------------------------------===//
22a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar//
32a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar//                     The LLVM Compiler Infrastructure
42a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar//
52a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar// This file is distributed under the University of Illinois Open Source
62a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar// License. See LICENSE.TXT for details.
72a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar//
82a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar//===----------------------------------------------------------------------===//
92a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar
102a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar#include "clang/Frontend/CompilerInstance.h"
112a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar#include "clang/Basic/Diagnostic.h"
1216b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbar#include "clang/Basic/FileManager.h"
1316b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbar#include "clang/Basic/SourceManager.h"
142a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar#include "clang/Basic/TargetInfo.h"
152a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar#include "llvm/LLVMContext.h"
162a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbarusing namespace clang;
172a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar
182a79e162a3fde25c1941151a67966830d873f2dbDaniel DunbarCompilerInstance::CompilerInstance(llvm::LLVMContext *_LLVMContext,
192a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar                                   bool _OwnsLLVMContext)
202a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar  : LLVMContext(_LLVMContext),
212a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar    OwnsLLVMContext(_OwnsLLVMContext) {
222a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar}
232a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar
242a79e162a3fde25c1941151a67966830d873f2dbDaniel DunbarCompilerInstance::~CompilerInstance() {
252a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar  if (OwnsLLVMContext)
262a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar    delete LLVMContext;
272a79e162a3fde25c1941151a67966830d873f2dbDaniel Dunbar}
2816b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbar
2916b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbarvoid CompilerInstance::createFileManager() {
3016b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbar  FileMgr.reset(new FileManager());
3116b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbar}
3216b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbar
3316b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbarvoid CompilerInstance::createSourceManager() {
3416b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbar  SourceMgr.reset(new SourceManager());
3516b7449d86b843d0926b04f87104cf3fff7149feDaniel Dunbar}
36