Fix ownership model of ParseAST to allow the dtor of
ASTConsumer to process the AST before it is destroyed.
This allows elimination of HandleObjcMetaDataEmission.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43659 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 77779f7..f568302 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -821,11 +821,10 @@
if (Consumer) {
if (VerifyDiagnostics)
- exit (CheckASTConsumer(PP, MainFileID, Consumer));
- else
- ParseAST(PP, MainFileID, *Consumer, Stats);
-
- delete Consumer;
+ exit(CheckASTConsumer(PP, MainFileID, Consumer));
+
+ // This deletes Consumer.
+ ParseAST(PP, MainFileID, Consumer, Stats);
}
if (Stats) {