diff --git a/clang/Driver/ASTConsumers.h b/clang/Driver/ASTConsumers.h index a22113aebd78..ab2f0ee6d460 100644 --- a/clang/Driver/ASTConsumers.h +++ b/clang/Driver/ASTConsumers.h @@ -32,7 +32,8 @@ ASTConsumer *CreateDeadStoreChecker(Diagnostic &Diags); ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags); ASTConsumer *CreateLLVMEmitter(Diagnostic &Diags, const LangOptions &Features); ASTConsumer *CreateCodeRewriterTest(Diagnostic &Diags); -ASTConsumer *CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr); +ASTConsumer *CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr, + const LangOptions &LOpts); } // end clang namespace diff --git a/clang/Driver/SerializationTest.cpp b/clang/Driver/SerializationTest.cpp index 0354f2b655fa..813aa7ea7b76 100644 --- a/clang/Driver/SerializationTest.cpp +++ b/clang/Driver/SerializationTest.cpp @@ -56,6 +56,7 @@ class SerializationTest : public ASTConsumer { ASTContext* Context; Diagnostic &Diags; FileManager &FMgr; + const LangOptions& LangOpts; std::list Decls; enum { BasicMetadataBlock = 1, @@ -63,8 +64,8 @@ class SerializationTest : public ASTConsumer { DeclsBlock = 3 }; public: - SerializationTest(Diagnostic &d, FileManager& fmgr) - : Context(NULL), Diags(d), FMgr(fmgr) {}; + SerializationTest(Diagnostic &d, FileManager& fmgr, const LangOptions& LOpts) + : Context(NULL), Diags(d), FMgr(fmgr), LangOpts(LOpts) {}; ~SerializationTest(); @@ -84,8 +85,9 @@ private: } // end anonymous namespace ASTConsumer* -clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr) { - return new SerializationTest(Diags,FMgr); +clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr, + const LangOptions &LOpts) { + return new SerializationTest(Diags,FMgr,LOpts); } static void WritePreamble(llvm::BitstreamWriter& Stream) { @@ -272,7 +274,7 @@ void SerializationTest::Deserialize(llvm::sys::Path& Filename, std::vector triples; triples.push_back(triple); delete [] triple; - Dezr.RegisterPtr(PtrID,CreateTargetInfo(triples,Diags)); + Dezr.RegisterPtr(PtrID,CreateTargetInfo(triples,&Diags)); } // For Selectors, we must read the identifier table first because the diff --git a/clang/Driver/Targets.cpp b/clang/Driver/Targets.cpp index 336beb925d07..63df5d48c88d 100644 --- a/clang/Driver/Targets.cpp +++ b/clang/Driver/Targets.cpp @@ -691,7 +691,7 @@ static TargetInfoImpl *CreateTarget(const std::string& T) { /// CreateTargetInfo - Return the set of target info objects as specified by /// the -arch command line option. TargetInfo *clang::CreateTargetInfo(const std::vector& triples, - Diagnostic &Diags) { + Diagnostic *Diags) { assert (!triples.empty() && "No target triple."); @@ -701,7 +701,7 @@ TargetInfo *clang::CreateTargetInfo(const std::vector& triples, if (!PrimaryTarget) return NULL; - TargetInfo *TI = new TargetInfo(PrimaryTarget, &Diags); + TargetInfo *TI = new TargetInfo(PrimaryTarget, Diags); // Add all secondary targets. for (unsigned i = 1, e = triples.size(); i != e; ++i) { diff --git a/clang/Driver/clang.cpp b/clang/Driver/clang.cpp index 64f8cb602dd2..484a03cc3f4a 100644 --- a/clang/Driver/clang.cpp +++ b/clang/Driver/clang.cpp @@ -848,7 +848,7 @@ static ASTConsumer* CreateASTConsumer(Diagnostic& Diag, FileManager& FileMgr, return CreateUnitValsChecker(Diag); case TestSerialization: - return CreateSerializationTest(Diag, FileMgr); + return CreateSerializationTest(Diag, FileMgr, LangOpts); case EmitLLVM: return CreateLLVMEmitter(Diag, LangOpts); @@ -1004,7 +1004,7 @@ int main(int argc, char **argv) { { // Create triples, and create the TargetInfo. std::vector triples; CreateTargetTriples(triples); - Target = CreateTargetInfo(triples,Diags); + Target = CreateTargetInfo(triples,&Diags); if (Target == 0) { fprintf(stderr, "Sorry, I don't know what target this is: %s\n", diff --git a/clang/Driver/clang.h b/clang/Driver/clang.h index eadeb7012612..098c51b39f65 100644 --- a/clang/Driver/clang.h +++ b/clang/Driver/clang.h @@ -37,7 +37,7 @@ MinimalAction *CreatePrintParserActionsAction(IdentifierTable &); /// CreateTargetInfo - Return the set of target info objects as specified by /// the -arch command line option. TargetInfo *CreateTargetInfo(const std::vector& triples, - Diagnostic &Diags); + Diagnostic *Diags); /// EmitLLVMFromASTs - Implement -emit-llvm, which generates llvm IR from C. void EmitLLVMFromASTs(Preprocessor &PP, unsigned MainFileID,