]> granicus.if.org Git - clang/commitdiff
CursorVisitor: migrate ObjCMessageExpr over to data-recursion algorithm.
authorTed Kremenek <kremenek@apple.com>
Fri, 12 Nov 2010 22:24:55 +0000 (22:24 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 12 Nov 2010 22:24:55 +0000 (22:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118933 91177308-0d34-0410-b5e6-96231b3b80d8

tools/libclang/CIndex.cpp

index b6a2a51e5ca7784a726bbf9815a2f849506687d6..df1937a90bfc44c6fd96a3c18c80c00955598fcf 100644 (file)
@@ -360,7 +360,6 @@ public:
   bool VisitDeclRefExpr(DeclRefExpr *E);
   bool VisitBlockExpr(BlockExpr *B);
   bool VisitExplicitCastExpr(ExplicitCastExpr *E);
-  bool VisitObjCMessageExpr(ObjCMessageExpr *E);
   bool VisitObjCEncodeExpr(ObjCEncodeExpr *E);
   bool VisitOffsetOfExpr(OffsetOfExpr *E);
   bool VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E);
@@ -391,6 +390,7 @@ bool Visit##NAME(NAME *S) { return VisitDataRecursive(S); }
   DATA_RECURSIVE_VISIT(InitListExpr)
   DATA_RECURSIVE_VISIT(ForStmt)
   DATA_RECURSIVE_VISIT(MemberExpr)
+  DATA_RECURSIVE_VISIT(ObjCMessageExpr)
   DATA_RECURSIVE_VISIT(OverloadExpr)
   DATA_RECURSIVE_VISIT(SwitchStmt)
   DATA_RECURSIVE_VISIT(WhileStmt)
@@ -1787,14 +1787,6 @@ bool CursorVisitor::VisitCXXDependentScopeMemberExpr(
   return false;
 }
 
-bool CursorVisitor::VisitObjCMessageExpr(ObjCMessageExpr *E) {
-  if (TypeSourceInfo *TSInfo = E->getClassReceiverTypeInfo())
-    if (Visit(TSInfo->getTypeLoc()))
-      return true;
-
-  return VisitExpr(E);
-}
-
 bool CursorVisitor::VisitObjCEncodeExpr(ObjCEncodeExpr *E) {
   return Visit(E->getEncodedTypeSourceInfo()->getTypeLoc());
 }
@@ -1892,6 +1884,10 @@ void CursorVisitor::EnqueueWorkList(VisitorWorkList &WL, Stmt *S) {
       WLAddStmt(WL, C, M->getBase());
       break;
     }
+    case Stmt::ObjCMessageExprClass:
+      EnqueueChildren(WL, C, S);
+      WLAddTypeLoc(WL, C, cast<ObjCMessageExpr>(S)->getClassReceiverTypeInfo());
+      break;
     case Stmt::ParenExprClass: {
       WLAddStmt(WL, C, cast<ParenExpr>(S)->getSubExpr());
       break;
@@ -1986,6 +1982,7 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) {
           case Stmt::IfStmtClass:
           case Stmt::InitListExprClass:
           case Stmt::MemberExprClass:
+          case Stmt::ObjCMessageExprClass:
           case Stmt::ParenExprClass:
           case Stmt::SwitchStmtClass:
           case Stmt::UnaryOperatorClass: