diff options
author | Chris Lattner <sabre@nondot.org> | 2007-12-02 01:09:57 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-12-02 01:09:57 +0000 |
commit | e6535cfdd29123c5f05d879e2847be098098cdf3 (patch) | |
tree | 572900fb34936998e3aa556e6678cc518591c6b6 /clang/Driver/RewriteTest.cpp | |
parent | a96fe8d5c5ee87f8acd8620d53a73bcbbeddce75 (diff) | |
download | bcm5719-llvm-e6535cfdd29123c5f05d879e2847be098098cdf3.tar.gz bcm5719-llvm-e6535cfdd29123c5f05d879e2847be098098cdf3.zip |
add support for custom client-specific diagnostics. As a testcase, make the
rewriter emit this error if it fails to rewrite an @encode:
t.m:17:9: error: rewriter could not replace sub-expression due to macros
c = ENC(char *)[2] + 4;
^~~~~~~~~~~
... where ENC is: #define ENC @encode
llvm-svn: 44498
Diffstat (limited to 'clang/Driver/RewriteTest.cpp')
-rw-r--r-- | clang/Driver/RewriteTest.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/Driver/RewriteTest.cpp b/clang/Driver/RewriteTest.cpp index 808fe987982..2073f7e391f 100644 --- a/clang/Driver/RewriteTest.cpp +++ b/clang/Driver/RewriteTest.cpp @@ -867,6 +867,11 @@ Stmt *RewriteTest::RewriteAtEncode(ObjCEncodeExpr *Exp) { SourceLocation(), SourceLocation()); if (Rewrite.ReplaceStmt(Exp, Replacement)) { // replacement failed. + unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Error, + "rewriter could not replace sub-expression due to macros"); + SourceRange Range = Exp->getSourceRange(); + Diags.Report(Exp->getAtLoc(), DiagID, 0, 0, &Range, 1); + delete Replacement; return Exp; } |