summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-10-17 21:28:00 +0000
committerChris Lattner <sabre@nondot.org>2007-10-17 21:28:00 +0000
commit9515625d0ccad6e577270b650a484de9091c52d6 (patch)
tree497c9a706422955fe17c0d19eb4b43afb25aed38
parent42ebe5c1e6522d92a361060e2176f2f2cdc760ac (diff)
downloadbcm5719-llvm-9515625d0ccad6e577270b650a484de9091c52d6.tar.gz
bcm5719-llvm-9515625d0ccad6e577270b650a484de9091c52d6.zip
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 :) llvm-svn: 43093
-rw-r--r--clang/Driver/RewriteTest.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/Driver/RewriteTest.cpp b/clang/Driver/RewriteTest.cpp
index 8a6d1df1b4e..6972f35853f 100644
--- a/clang/Driver/RewriteTest.cpp
+++ b/clang/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);
}
OpenPOWER on IntegriCloud