summaryrefslogtreecommitdiffstats
path: root/clang/tools
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-09-03 18:01:25 +0000
committerDouglas Gregor <dgregor@apple.com>2010-09-03 18:01:25 +0000
commit901a0fabfc28aa3d5e5a0e8e8148fc191561caec (patch)
tree1cbd5ac42b775a24618986cb5959559b9aad20df /clang/tools
parent45eafb8d21e63e4cf4cb41dd361b06f278419e7e (diff)
downloadbcm5719-llvm-901a0fabfc28aa3d5e5a0e8e8148fc191561caec.tar.gz
bcm5719-llvm-901a0fabfc28aa3d5e5a0e8e8148fc191561caec.zip
Implement libclang visitation for UnresolvedMemberExpr. This is the
last of the C++-specific expressions where we have decent source information in the AST already. In particular, various object-construction expressions (CXXNewExpr, CXXTemporaryObjectExpr) still have poor source-location information that needs to be addressed. llvm-svn: 112981
Diffstat (limited to 'clang/tools')
-rw-r--r--clang/tools/libclang/CIndex.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 19dd44b8cf2..5117f2c1642 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -393,7 +393,9 @@ public:
// FIXME: UnaryTypeTraitExpr has poor source-location information.
bool VisitOverloadExpr(OverloadExpr *E);
bool VisitDependentScopeDeclRefExpr(DependentScopeDeclRefExpr *E);
+ // FIXME: CXXUnresolvedConstructExpr has poor source-location information.
bool VisitCXXDependentScopeMemberExpr(CXXDependentScopeMemberExpr *E);
+ bool VisitUnresolvedMemberExpr(UnresolvedMemberExpr *E);
};
} // end anonymous namespace
@@ -1693,6 +1695,14 @@ bool CursorVisitor::VisitCXXDependentScopeMemberExpr(
return false;
}
+bool CursorVisitor::VisitUnresolvedMemberExpr(UnresolvedMemberExpr *E) {
+ // Visit the base expression, if there is one.
+ if (!E->isImplicitAccess() &&
+ Visit(MakeCXCursor(E->getBase(), StmtParent, TU)))
+ return true;
+
+ return VisitOverloadExpr(E);
+}
bool CursorVisitor::VisitObjCMessageExpr(ObjCMessageExpr *E) {
if (TypeSourceInfo *TSInfo = E->getClassReceiverTypeInfo())
OpenPOWER on IntegriCloud