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) {