diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-09-02 21:20:16 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-09-02 21:20:16 +0000 |
| commit | 46af50106588bc6b014d21b9b6216a200c686a43 (patch) | |
| tree | c37936378913bc66c1e43b00b17fd3401bac5ba9 /clang/tools | |
| parent | 3c9b5f394b1cb4008e782c807c094b872a760c29 (diff) | |
| download | bcm5719-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.cpp | 12 |
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())) |

