From: Chris Lattner Date: Fri, 30 Nov 2007 22:25:36 +0000 (+0000) Subject: pass diagnostics into the rewrite test client. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e365c50a21cb02e0219433db0c4461566ad4a597;p=clang pass diagnostics into the rewrite test client. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44468 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Driver/ASTConsumers.h b/Driver/ASTConsumers.h index dc6e750b72..37f825b5da 100644 --- a/Driver/ASTConsumers.h +++ b/Driver/ASTConsumers.h @@ -30,7 +30,7 @@ ASTConsumer *CreateLiveVarAnalyzer(); ASTConsumer *CreateDeadStoreChecker(Diagnostic &Diags); ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags); ASTConsumer *CreateLLVMEmitter(Diagnostic &Diags, const LangOptions &Features); -ASTConsumer *CreateCodeRewriterTest(); +ASTConsumer *CreateCodeRewriterTest(Diagnostic &Diags); ASTConsumer *CreateSerializationTest(); } // end clang namespace diff --git a/Driver/RewriteTest.cpp b/Driver/RewriteTest.cpp index 043b260b16..5d14f03555 100644 --- a/Driver/RewriteTest.cpp +++ b/Driver/RewriteTest.cpp @@ -27,6 +27,7 @@ using llvm::utostr; namespace { class RewriteTest : public ASTConsumer { Rewriter Rewrite; + Diagnostic &Diags; ASTContext *Context; SourceManager *SM; unsigned MainFileID; @@ -92,6 +93,7 @@ namespace { // Top Level Driver code. virtual void HandleTopLevelDecl(Decl *D); void HandleDeclInMainFile(Decl *D); + RewriteTest(Diagnostic &D) : Diags(D) {} ~RewriteTest(); // Syntactic Rewriting. @@ -160,7 +162,9 @@ namespace { }; } -ASTConsumer *clang::CreateCodeRewriterTest() { return new RewriteTest(); } +ASTConsumer *clang::CreateCodeRewriterTest(Diagnostic &Diags) { + return new RewriteTest(Diags); +} //===----------------------------------------------------------------------===// // Top Level Driver Code @@ -860,7 +864,11 @@ Stmt *RewriteTest::RewriteAtEncode(ObjCEncodeExpr *Exp) { Expr *Replacement = new StringLiteral(StrEncoding.c_str(), StrEncoding.length(), false, StrType, SourceLocation(), SourceLocation()); - Rewrite.ReplaceStmt(Exp, Replacement); + if (Rewrite.ReplaceStmt(Exp, Replacement)) { + // replacement failed. + return Exp; + } + delete Exp; return Replacement; } diff --git a/Driver/clang.cpp b/Driver/clang.cpp index ac3a04ab2e..f26fb994b9 100644 --- a/Driver/clang.cpp +++ b/Driver/clang.cpp @@ -836,7 +836,7 @@ static void ProcessInputFile(Preprocessor &PP, unsigned MainFileID, break; case RewriteTest: - Consumer = CreateCodeRewriterTest(); + Consumer = CreateCodeRewriterTest(PP.getDiagnostics()); break; } diff --git a/clang.xcodeproj/project.pbxproj b/clang.xcodeproj/project.pbxproj index 1585d851d9..db10ad3f44 100644 --- a/clang.xcodeproj/project.pbxproj +++ b/clang.xcodeproj/project.pbxproj @@ -766,7 +766,6 @@ 08FB7793FE84155DC02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "clang" */; - compatibilityVersion = "Xcode 2.4"; hasScannedForEncodings = 1; mainGroup = 08FB7794FE84155DC02AAC07 /* clang */; projectDirPath = "";