From e6535cfdd29123c5f05d879e2847be098098cdf3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 2 Dec 2007 01:09:57 +0000 Subject: 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 --- clang/Driver/RewriteTest.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/Driver/RewriteTest.cpp') 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; } -- cgit v1.2.3