diff options
author | Chris Lattner <sabre@nondot.org> | 2007-11-30 22:25:36 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-11-30 22:25:36 +0000 |
commit | e365c50a21cb02e0219433db0c4461566ad4a597 (patch) | |
tree | f8c2248f5096661fd994fa054c0cf3c6024e9dd8 /Driver/RewriteTest.cpp | |
parent | 6c19a04a3903a0b0897e3e6deb995bfe2809dca1 (diff) |
pass diagnostics into the rewrite test client.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44468 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Driver/RewriteTest.cpp')
-rw-r--r-- | Driver/RewriteTest.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
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; } |