aboutsummaryrefslogtreecommitdiff
path: root/lib/Frontend/ASTUnit.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-03 05:59:35 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-03 05:59:35 +0000
commitcc318939daaa50fc07f7d431caec3c8679893e9c (patch)
tree82c9b57d3839978c8a3ba7c48dd6739f43c7afab /lib/Frontend/ASTUnit.cpp
parent5345c391c65d1780a0d7b0102b7f735cc3f82732 (diff)
Revert "Remove redundant local variable (use newly created instance data).", the
previous commit this depends on is breaking x86_64-apple-darwin10 and Linux tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80895 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/ASTUnit.cpp')
-rw-r--r--lib/Frontend/ASTUnit.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/Frontend/ASTUnit.cpp b/lib/Frontend/ASTUnit.cpp
index 3fce817c0d..38452ed9d4 100644
--- a/lib/Frontend/ASTUnit.cpp
+++ b/lib/Frontend/ASTUnit.cpp
@@ -104,13 +104,15 @@ ASTUnit *ASTUnit::LoadFromPCHFile(const std::string &Filename,
std::string Predefines;
unsigned Counter;
+ llvm::OwningPtr<PCHReader> Reader;
llvm::OwningPtr<ExternalASTSource> Source;
- AST->Reader.reset(new PCHReader(SourceMgr, FileMgr, Diags));
- AST->Reader->setListener(new PCHInfoCollector(LangInfo, HeaderInfo,
- TargetTriple, Predefines,
- Counter));
- switch (AST->Reader->ReadPCH(Filename)) {
+ Reader.reset(new PCHReader(SourceMgr, FileMgr, Diags));
+ AST->Reader.reset(Reader.get());
+ Reader->setListener(new PCHInfoCollector(LangInfo, HeaderInfo, TargetTriple,
+ Predefines, Counter));
+
+ switch (Reader->ReadPCH(Filename)) {
case PCHReader::Success:
break;
@@ -131,7 +133,7 @@ ASTUnit *ASTUnit::LoadFromPCHFile(const std::string &Filename,
PP.setPredefines(Predefines);
PP.setCounterValue(Counter);
- AST->Reader->setPreprocessor(PP);
+ Reader->setPreprocessor(PP);
// Create and initialize the ASTContext.
@@ -145,12 +147,12 @@ ASTUnit *ASTUnit::LoadFromPCHFile(const std::string &Filename,
/* size_reserve = */0));
ASTContext &Context = *AST->Ctx.get();
- AST->Reader->InitializeContext(Context);
+ Reader->InitializeContext(Context);
// Attach the PCH reader to the AST context as an external AST
// source, so that declarations will be deserialized from the
// PCH file as needed.
- Source.reset(AST->Reader.get());
+ Source.reset(Reader.take());
Context.setExternalSource(Source);
return AST.take();