From: Chris Lattner Date: Wed, 17 Oct 2007 21:28:00 +0000 (+0000) Subject: Add rewriter support for @encode expressions. For example, X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5075477aad33b82b3657e5363459045e230f865d;p=clang Add rewriter support for @encode expressions. For example, we currently turn: c = @encode(char *)[2] + 4; into: c = "foo"[2] + 4; Right now the foo string is hard coded, but you can imagine a world where it wouldn't be :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43093 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Driver/RewriteTest.cpp b/Driver/RewriteTest.cpp index 8a6d1df1b4..6972f35853 100644 --- a/Driver/RewriteTest.cpp +++ b/Driver/RewriteTest.cpp @@ -104,18 +104,18 @@ void RewriteTest::RewriteFunctionBody(Stmt *S) { // Otherwise, just rewrite all children. for (Stmt::child_iterator CI = S->child_begin(), E = S->child_end(); CI != E; ++CI) - RewriteFunctionBody(*CI); + if (*CI) + RewriteFunctionBody(*CI); } void RewriteTest::RewriteAtEncode(ObjCEncodeExpr *Exp) { -#if 0 int Size = Rewrite.getRangeSize(Exp->getSourceRange()); if (Size == -1) { printf("BLAH!"); + return; } - Rewrite.RemoveText(Exp->getAtLoc(), Size); -#endif + Rewrite.ReplaceText(Exp->getAtLoc(), Size, "\"foo\"", 5); }