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
// 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);
}