diff options
Diffstat (limited to 'clang/tools/clang-cc/GeneratePCH.cpp')
-rw-r--r-- | clang/tools/clang-cc/GeneratePCH.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/tools/clang-cc/GeneratePCH.cpp b/clang/tools/clang-cc/GeneratePCH.cpp index 9b865140867..4265c816f05 100644 --- a/clang/tools/clang-cc/GeneratePCH.cpp +++ b/clang/tools/clang-cc/GeneratePCH.cpp @@ -14,6 +14,7 @@ #include "ASTConsumers.h" #include "clang/Frontend/PCHWriter.h" +#include "clang/Sema/SemaConsumer.h" #include "clang/AST/ASTContext.h" #include "clang/AST/ASTConsumer.h" #include "clang/Lex/Preprocessor.h" @@ -28,14 +29,16 @@ using namespace clang; using namespace llvm; namespace { - class VISIBILITY_HIDDEN PCHGenerator : public ASTConsumer { + class VISIBILITY_HIDDEN PCHGenerator : public SemaConsumer { const Preprocessor &PP; std::string OutFile; + Sema *SemaPtr; public: explicit PCHGenerator(const Preprocessor &PP, const std::string &OutFile) - : PP(PP), OutFile(OutFile) { } + : PP(PP), OutFile(OutFile), SemaPtr(0) { } + virtual void InitializeSema(Sema &S) { SemaPtr = &S; } virtual void HandleTranslationUnit(ASTContext &Ctx); }; } @@ -50,7 +53,8 @@ void PCHGenerator::HandleTranslationUnit(ASTContext &Ctx) { PCHWriter Writer(Stream); // Emit the PCH file - Writer.WritePCH(Ctx, PP); + assert(SemaPtr && "No Sema?"); + Writer.WritePCH(*SemaPtr); // Open up the PCH file. std::string ErrMsg; |