summaryrefslogtreecommitdiffstats
path: root/clang/lib/Index/DeclReferenceMap.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2009-07-14 03:18:09 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2009-07-14 03:18:09 +0000
commita28d145cbb399f9bff5010998aa878a9a91b119a (patch)
treee515ae743cf61a77553d53946c1f5bbf9a9b5bad /clang/lib/Index/DeclReferenceMap.cpp
parent664b690107211c5f1b772524afbef39fe2b8cd98 (diff)
downloadbcm5719-llvm-a28d145cbb399f9bff5010998aa878a9a91b119a.tar.gz
bcm5719-llvm-a28d145cbb399f9bff5010998aa878a9a91b119a.zip
In DeclReferenceMap, map FieldDecls to the MemberExprs that reference them.
llvm-svn: 75593
Diffstat (limited to 'clang/lib/Index/DeclReferenceMap.cpp')
-rw-r--r--clang/lib/Index/DeclReferenceMap.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Index/DeclReferenceMap.cpp b/clang/lib/Index/DeclReferenceMap.cpp
index 95de2ea7d0a..3ec8794b379 100644
--- a/clang/lib/Index/DeclReferenceMap.cpp
+++ b/clang/lib/Index/DeclReferenceMap.cpp
@@ -34,6 +34,7 @@ public:
void VisitDeclStmt(DeclStmt *Node);
void VisitDeclRefExpr(DeclRefExpr *Node);
+ void VisitMemberExpr(MemberExpr *Node);
void VisitStmt(Stmt *Node);
};
@@ -69,6 +70,11 @@ void StmtMapper::VisitDeclRefExpr(DeclRefExpr *Node) {
Map.insert(std::make_pair(PrimD, ASTLocation(Parent, Node)));
}
+void StmtMapper::VisitMemberExpr(MemberExpr *Node) {
+ NamedDecl *PrimD = cast<NamedDecl>(Node->getMemberDecl()->getPrimaryDecl());
+ Map.insert(std::make_pair(PrimD, ASTLocation(Parent, Node)));
+}
+
void StmtMapper::VisitStmt(Stmt *Node) {
for (Stmt::child_iterator
I = Node->child_begin(), E = Node->child_end(); I != E; ++I)
OpenPOWER on IntegriCloud