diff options
Diffstat (limited to 'clang/Driver')
-rw-r--r-- | clang/Driver/ASTConsumers.cpp | 21 | ||||
-rw-r--r-- | clang/Driver/ASTConsumers.h | 6 | ||||
-rw-r--r-- | clang/Driver/SerializationTest.cpp | 26 | ||||
-rw-r--r-- | clang/Driver/clang.cpp | 8 |
4 files changed, 21 insertions, 40 deletions
diff --git a/clang/Driver/ASTConsumers.cpp b/clang/Driver/ASTConsumers.cpp index 9ab6157cfaa..5d45f312e2e 100644 --- a/clang/Driver/ASTConsumers.cpp +++ b/clang/Driver/ASTConsumers.cpp @@ -868,12 +868,10 @@ namespace { class ASTSerializer : public ASTConsumer { protected: Diagnostic &Diags; - const LangOptions& lang; TranslationUnit* TU; public: - ASTSerializer(Diagnostic& diags, const LangOptions& LO) - : Diags(diags), lang(LO), TU(0) {} + ASTSerializer(Diagnostic& diags) : Diags(diags), TU(0) {} virtual ~ASTSerializer() { delete TU; } @@ -892,9 +890,8 @@ public: class SingleFileSerializer : public ASTSerializer { const llvm::sys::Path FName; public: - SingleFileSerializer(const llvm::sys::Path& F, Diagnostic &diags, - const LangOptions &LO) - : ASTSerializer(diags,LO), FName(F) {} + SingleFileSerializer(const llvm::sys::Path& F, Diagnostic &diags) + : ASTSerializer(diags), FName(F) {} ~SingleFileSerializer() { EmitASTBitcodeFile(TU, FName); @@ -904,9 +901,8 @@ public: class BuildSerializer : public ASTSerializer { llvm::sys::Path EmitDir; public: - BuildSerializer(const llvm::sys::Path& dir, Diagnostic &diags, - const LangOptions &LO) - : ASTSerializer(diags,LO), EmitDir(dir) {} + BuildSerializer(const llvm::sys::Path& dir, Diagnostic &diags) + : ASTSerializer(diags), EmitDir(dir) {} ~BuildSerializer() { @@ -950,8 +946,7 @@ public: ASTConsumer* clang::CreateASTSerializer(const std::string& InFile, const std::string& OutputFile, - Diagnostic &Diags, - const LangOptions &Features) { + Diagnostic &Diags) { if (OutputFile.size()) { if (InFile == "-") { @@ -982,7 +977,7 @@ ASTConsumer* clang::CreateASTSerializer(const std::string& InFile, // FIXME: We should probably only allow using BuildSerializer when // the ASTs come from parsed source files, and not from .ast files. - return new BuildSerializer(EmitDir, Diags, Features); + return new BuildSerializer(EmitDir, Diags); } // The user did not specify an output directory for serialized ASTs. @@ -991,5 +986,5 @@ ASTConsumer* clang::CreateASTSerializer(const std::string& InFile, llvm::sys::Path FName(InFile.c_str()); FName.appendSuffix("ast"); - return new SingleFileSerializer(FName, Diags, Features); + return new SingleFileSerializer(FName, Diags); } diff --git a/clang/Driver/ASTConsumers.h b/clang/Driver/ASTConsumers.h index 7037ade1ddf..ca93e0fbf9a 100644 --- a/clang/Driver/ASTConsumers.h +++ b/clang/Driver/ASTConsumers.h @@ -67,13 +67,11 @@ ASTConsumer* CreateHTMLPrinter(const std::string &OutFile, Diagnostic &D, Preprocessor *PP, PreprocessorFactory* PPF); ASTConsumer *CreateSerializationTest(Diagnostic &Diags, - FileManager& FMgr, - const LangOptions &LOpts); + FileManager& FMgr); ASTConsumer *CreateASTSerializer(const std::string& InFile, const std::string& EmitDir, - Diagnostic &Diags, - const LangOptions &LOpts); + Diagnostic &Diags); } // end clang namespace diff --git a/clang/Driver/SerializationTest.cpp b/clang/Driver/SerializationTest.cpp index 5f7b94fca40..946a4c87d6a 100644 --- a/clang/Driver/SerializationTest.cpp +++ b/clang/Driver/SerializationTest.cpp @@ -33,26 +33,16 @@ using namespace clang; namespace { class SerializationTest : public ASTConsumer { - llvm::OwningPtr<TranslationUnit> TU; + TranslationUnit* TU; Diagnostic &Diags; FileManager &FMgr; - const LangOptions& lopts; public: - SerializationTest(Diagnostic &d, FileManager& fmgr, const LangOptions& LOpts) - : Diags(d), FMgr(fmgr), lopts(LOpts) {} + SerializationTest(Diagnostic &d, FileManager& fmgr) + : TU(0), Diags(d), FMgr(fmgr) {} ~SerializationTest(); - virtual void Initialize(ASTContext& context) { - if (!TU) { - TU.reset(new TranslationUnit(context, lopts)); - TU->SetOwnsDecls(false); - } - } - - virtual void HandleTopLevelDecl(Decl *D) { - TU->AddTopLevelDecl(D); - } + virtual void InitializeTU(TranslationUnit& tu) { TU = &tu; } private: bool Serialize(llvm::sys::Path& Filename, llvm::sys::Path& FNameDeclPrint); @@ -62,10 +52,8 @@ private: } // end anonymous namespace ASTConsumer* -clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr, - const LangOptions &LOpts) { - - return new SerializationTest(Diags,FMgr,LOpts); +clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr) { + return new SerializationTest(Diags, FMgr); } @@ -89,7 +77,7 @@ bool SerializationTest::Deserialize(llvm::sys::Path& Filename, llvm::sys::Path& FNameDeclPrint) { // Deserialize the translation unit. - TranslationUnit* NewTU = ReadASTBitcodeFile(Filename,FMgr); + TranslationUnit* NewTU = ReadASTBitcodeFile(Filename, FMgr); if (!NewTU) return false; diff --git a/clang/Driver/clang.cpp b/clang/Driver/clang.cpp index 7a61145c66c..df41e54b32d 100644 --- a/clang/Driver/clang.cpp +++ b/clang/Driver/clang.cpp @@ -1189,7 +1189,7 @@ static ASTConsumer* CreateASTConsumer(const std::string& InFile, OutputFile, VisualizeEG, TrimGraph, AnalyzeAll); case TestSerialization: - return CreateSerializationTest(Diag, FileMgr, LangOpts); + return CreateSerializationTest(Diag, FileMgr); case EmitLLVM: case EmitBC: @@ -1198,7 +1198,7 @@ static ASTConsumer* CreateASTConsumer(const std::string& InFile, case SerializeAST: // FIXME: Allow user to tailor where the file is written. - return CreateASTSerializer(InFile, OutputFile, Diag, LangOpts); + return CreateASTSerializer(InFile, OutputFile, Diag); case RewriteObjC: return CreateCodeRewriterTest(InFile, OutputFile, Diag, LangOpts); @@ -1362,8 +1362,8 @@ static void ProcessSerializedFile(const std::string& InFile, Diagnostic& Diag, // translation unit, rather than InFile. llvm::Module *DestModule; llvm::OwningPtr<ASTConsumer> - Consumer(CreateASTConsumer(InFile, Diag, FileMgr, TU->getLangOpts(), 0, 0, - DestModule)); + Consumer(CreateASTConsumer(InFile, Diag, FileMgr, TU->getLangOptions(), + 0, 0, DestModule)); if (!Consumer) { fprintf(stderr, "Unsupported program action with serialized ASTs!\n"); |