Я новичок в статическом анализе объектива-c через clang. У меня проблема с тем, что когда я нахожу ReturnStmt через RecursiveASTVisitor, clang иногда не может найти ReturnStmt. Код RecursiveASTVisitor так:Как я могу получить Return-Stmt объекта-c через clang-3.9?
class MyASTVisitor : public RecursiveASTVisitor<MyASTVisitor> {
public:
MyASTVisitor(Rewriter &R) : TheRewriter(R) {}
.........
else if(isa<ReturnStmt>(s)){
//The Return Stmt find block
ReturnStmt *returnStat = cast<ReturnStmt>(s);
TheRewriter.InsertText(returnStat->getLocStart(),"//the return stmt\n",true,true);
}
return true;
}}
И вот результат Первый результат может найти обратный STMT
int main (int argc, const char* argv[]) {
@autoreleasepool {
//the func--->NSLog() begin called!
NSLog (@"Programming is fun!");
}
//the return stmt
return 0; }
Но второй не может найти его
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}}
@Nishant Sharma – CurryChen
Ну, я не получил тэг: [как упоминать тег любого пользователя в сообщении] (http://meta.stackexchange.com/questions/97471/how-to-mention-tag- любой пользователь-в-пост). В случае, если вы хотите пометить кого-то. Что касается вопроса, я могу понять, почему это произойдет, я скоро составу ответ. –