Extend ObjCMessageExpr for class method sends with the source location
of the class name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97943 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp
index 4ae2f80..6fff183 100644
--- a/tools/CIndex/CIndex.cpp
+++ b/tools/CIndex/CIndex.cpp
@@ -315,6 +315,7 @@
bool VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E);
bool VisitExplicitCastExpr(ExplicitCastExpr *E);
bool VisitCompoundLiteralExpr(CompoundLiteralExpr *E);
+ bool VisitObjCMessageExpr(ObjCMessageExpr *E);
};
} // end anonymous namespace
@@ -901,6 +902,14 @@
return VisitExpr(E);
}
+bool CursorVisitor::VisitObjCMessageExpr(ObjCMessageExpr *E) {
+ ObjCMessageExpr::ClassInfo CI = E->getClassInfo();
+ if (CI.Decl && Visit(MakeCursorObjCClassRef(CI.Decl, CI.Loc, TU)))
+ return true;
+
+ return VisitExpr(E);
+}
+
bool CursorVisitor::VisitAttributes(Decl *D) {
for (const Attr *A = D->getAttrs(); A; A = A->getNext())
if (Visit(MakeCXCursor(A, D, TU)))