Arrange for the preprocessor to be passed down into the PCH writer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68790 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/clang-cc/GeneratePCH.cpp b/tools/clang-cc/GeneratePCH.cpp
index a233348..a850c58 100644
--- a/tools/clang-cc/GeneratePCH.cpp
+++ b/tools/clang-cc/GeneratePCH.cpp
@@ -12,9 +12,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "ASTConsumers.h"
 #include "clang/Frontend/PCHWriter.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/ASTConsumer.h"
+#include "clang/Lex/Preprocessor.h"
 #include "llvm/Bitcode/BitstreamWriter.h"
 #include "llvm/System/Path.h"
 #include "llvm/Support/Compiler.h"
@@ -27,19 +29,19 @@
 
 namespace {
   class VISIBILITY_HIDDEN PCHGenerator : public ASTConsumer {
-    Diagnostic &Diags;
+    Preprocessor &PP;
     std::string OutFile;
 
   public:
-    explicit PCHGenerator(Diagnostic &Diags, const std::string &OutFile)
-      : Diags(Diags), OutFile(OutFile) { }
+    explicit PCHGenerator(Preprocessor &PP, const std::string &OutFile)
+      : PP(PP), OutFile(OutFile) { }
 
     virtual void HandleTranslationUnit(ASTContext &Ctx);
   };
 }
 
 void PCHGenerator::HandleTranslationUnit(ASTContext &Ctx) {
-  if (Diags.hasErrorOccurred())
+  if (PP.getDiagnostics().hasErrorOccurred())
     return;
 
  // Write the PCH contents into a buffer
@@ -48,7 +50,7 @@
   PCHWriter Writer(Stream);
 
   // Emit the PCH file
-  Writer.WritePCH(Ctx);
+  Writer.WritePCH(Ctx, PP);
 
   // Open up the PCH file.
   std::string ErrMsg;
@@ -66,13 +68,7 @@
   Out.flush();
 }
 
-namespace clang {
-
-ASTConsumer *CreatePCHGenerator(Diagnostic &Diags,
-                                const LangOptions &Features,
-                                const std::string& InFile,
-                                const std::string& OutFile) {
-  return new PCHGenerator(Diags, OutFile);
-}
-
+ASTConsumer *clang::CreatePCHGenerator(Preprocessor &PP,
+                                       const std::string &OutFile) {
+  return new PCHGenerator(PP, OutFile);
 }