summaryrefslogtreecommitdiffstats
path: root/clang/tools
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-09-02 21:20:16 +0000
committerDouglas Gregor <dgregor@apple.com>2010-09-02 21:20:16 +0000
commit46af50106588bc6b014d21b9b6216a200c686a43 (patch)
treec37936378913bc66c1e43b00b17fd3401bac5ba9 /clang/tools
parent3c9b5f394b1cb4008e782c807c094b872a760c29 (diff)
downloadbcm5719-llvm-46af50106588bc6b014d21b9b6216a200c686a43.tar.gz
bcm5719-llvm-46af50106588bc6b014d21b9b6216a200c686a43.zip
Add libclang visitation for C++ typeid expressions.
llvm-svn: 112862
Diffstat (limited to 'clang/tools')
-rw-r--r--clang/tools/libclang/CIndex.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 28751d26c40..2b3364c77e1 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -384,6 +384,7 @@ public:
bool VisitVAArgExpr(VAArgExpr *E);
// FIXME: InitListExpr (for the designators)
// FIXME: DesignatedInitExpr
+ bool VisitCXXTypeidExpr(CXXTypeidExpr *E);
};
} // end anonymous namespace
@@ -1567,6 +1568,17 @@ bool CursorVisitor::VisitVAArgExpr(VAArgExpr *E) {
return Visit(MakeCXCursor(E->getSubExpr(), StmtParent, TU));
}
+bool CursorVisitor::VisitCXXTypeidExpr(CXXTypeidExpr *E) {
+ if (E->isTypeOperand()) {
+ if (TypeSourceInfo *TSInfo = E->getTypeOperandSourceInfo())
+ return Visit(TSInfo->getTypeLoc());
+
+ return false;
+ }
+
+ return VisitExpr(E);
+}
+
bool CursorVisitor::VisitObjCMessageExpr(ObjCMessageExpr *E) {
if (TypeSourceInfo *TSInfo = E->getClassReceiverTypeInfo())
if (Visit(TSInfo->getTypeLoc()))
OpenPOWER on IntegriCloud