diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-02-16 01:54:47 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-02-16 01:54:47 +0000 |
commit | 42e9f8e4983d50f896ec716207817b9d96e7e79c (patch) | |
tree | f1f24e590c66b80b2bff852ba4dd1c88c6850187 /include/clang/Frontend/CompilerInstance.h | |
parent | f25491dd27f188afe083dbbdf028c87a2daba359 (diff) |
CompilerInstance: Move LLVMContext member out of constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96314 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Frontend/CompilerInstance.h')
-rw-r--r-- | include/clang/Frontend/CompilerInstance.h | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/include/clang/Frontend/CompilerInstance.h b/include/clang/Frontend/CompilerInstance.h index 8f12b54be9..1be4118e55 100644 --- a/include/clang/Frontend/CompilerInstance.h +++ b/include/clang/Frontend/CompilerInstance.h @@ -58,8 +58,7 @@ class TargetInfo; /// and a long form that takes explicit instances of any required objects. class CompilerInstance { /// The LLVM context used for this instance. - llvm::LLVMContext *LLVMContext; - bool OwnsLLVMContext; + llvm::OwningPtr<llvm::LLVMContext> LLVMContext; /// The options used in this compiler instance. llvm::OwningPtr<CompilerInvocation> Invocation; @@ -97,11 +96,10 @@ class CompilerInstance { /// The list of active output files. std::list< std::pair<std::string, llvm::raw_ostream*> > OutputFiles; + void operator=(const CompilerInstance &); // DO NOT IMPLEMENT + CompilerInstance(const CompilerInstance&); // DO NOT IMPLEMENT public: - /// Create a new compiler instance with the given LLVM context, optionally - /// taking ownership of it. - CompilerInstance(llvm::LLVMContext *_LLVMContext = 0, - bool _OwnsLLVMContext = true); + CompilerInstance(); ~CompilerInstance(); /// @name High-Level Operations @@ -150,12 +148,11 @@ public: return *LLVMContext; } + llvm::LLVMContext *takeLLVMContext() { return LLVMContext.take(); } + /// setLLVMContext - Replace the current LLVM context and take ownership of /// \arg Value. - void setLLVMContext(llvm::LLVMContext *Value, bool TakeOwnership = true) { - LLVMContext = Value; - OwnsLLVMContext = TakeOwnership; - } + void setLLVMContext(llvm::LLVMContext *Value); /// } /// @name Compiler Invocation and Options |