diff options
Diffstat (limited to 'clang/tools')
-rw-r--r-- | clang/tools/clang-cc/ASTConsumers.h | 30 | ||||
-rw-r--r-- | clang/tools/clang-cc/GeneratePCH.cpp | 24 | ||||
-rw-r--r-- | clang/tools/clang-cc/clang-cc.cpp | 3 |
3 files changed, 26 insertions, 31 deletions
diff --git a/clang/tools/clang-cc/ASTConsumers.h b/clang/tools/clang-cc/ASTConsumers.h index e7bc962bd92..d433d05b02f 100644 --- a/clang/tools/clang-cc/ASTConsumers.h +++ b/clang/tools/clang-cc/ASTConsumers.h @@ -55,35 +55,33 @@ ASTConsumer *CreateBackendConsumer(BackendAction Action, Diagnostic &Diags, const LangOptions &Features, const CompileOptions &CompileOpts, - const std::string& InFile, - const std::string& OutFile); + const std::string &InFile, + const std::string &OutFile); ASTConsumer* CreateHTMLPrinter(const std::string &OutFile, Diagnostic &D, - Preprocessor *PP, PreprocessorFactory* PPF); + Preprocessor *PP, PreprocessorFactory *PPF); ASTConsumer *CreateSerializationTest(Diagnostic &Diags, - FileManager& FMgr); + FileManager &FMgr); -ASTConsumer *CreateASTSerializer(const std::string& InFile, - const std::string& EmitDir, +ASTConsumer *CreateASTSerializer(const std::string &InFile, + const std::string &EmitDir, Diagnostic &Diags); -ASTConsumer *CreatePCHGenerator(Diagnostic &Diags, - const LangOptions &Features, - const std::string& InFile, - const std::string& OutFile); +ASTConsumer *CreatePCHGenerator(Preprocessor &PP, + const std::string &OutFile); -ASTConsumer *CreateBlockRewriter(const std::string& InFile, - const std::string& OutFile, +ASTConsumer *CreateBlockRewriter(const std::string &InFile, + const std::string &OutFile, Diagnostic &Diags, const LangOptions &LangOpts); ASTConsumer *CreateInheritanceViewer(const std::string& clsname); -ASTConsumer* CreateAnalysisConsumer(Diagnostic &diags, Preprocessor* pp, - PreprocessorFactory* ppf, - const LangOptions& lopts, - const std::string& output); +ASTConsumer* CreateAnalysisConsumer(Diagnostic &diags, Preprocessor *pp, + PreprocessorFactory *ppf, + const LangOptions &lopts, + const std::string &output); } // end clang namespace diff --git a/clang/tools/clang-cc/GeneratePCH.cpp b/clang/tools/clang-cc/GeneratePCH.cpp index a2333487188..a850c582e81 100644 --- a/clang/tools/clang-cc/GeneratePCH.cpp +++ b/clang/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 @@ using namespace llvm; 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 @@ void PCHGenerator::HandleTranslationUnit(ASTContext &Ctx) { 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 @@ void PCHGenerator::HandleTranslationUnit(ASTContext &Ctx) { 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); } diff --git a/clang/tools/clang-cc/clang-cc.cpp b/clang/tools/clang-cc/clang-cc.cpp index 258076836a8..8e29dded845 100644 --- a/clang/tools/clang-cc/clang-cc.cpp +++ b/clang/tools/clang-cc/clang-cc.cpp @@ -1529,7 +1529,8 @@ static ASTConsumer *CreateASTConsumer(const std::string& InFile, return CreateASTSerializer(InFile, OutputFile, Diag); case GeneratePCH: - return CreatePCHGenerator(Diag, LangOpts, InFile, OutputFile); + assert(PP && "Generate PCH doesn't work from serialized file yet"); + return CreatePCHGenerator(*PP, OutputFile); case RewriteObjC: return CreateCodeRewriterTest(InFile, OutputFile, Diag, LangOpts); |