aboutsummaryrefslogtreecommitdiff
path: root/Driver/RewriteTest.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-11-30 22:25:36 +0000
committerChris Lattner <sabre@nondot.org>2007-11-30 22:25:36 +0000
commite365c50a21cb02e0219433db0c4461566ad4a597 (patch)
treef8c2248f5096661fd994fa054c0cf3c6024e9dd8 /Driver/RewriteTest.cpp
parent6c19a04a3903a0b0897e3e6deb995bfe2809dca1 (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.cpp12
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;
}