From b8dd1cad52be63b18092bd9d9335cbeee3f5de9f Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 17 Nov 2010 00:50:41 +0000 Subject: [PATCH] CursorVisitor: migrate handling of CXXTypeidExpr to data-recursion algorithm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119439 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/libclang/CIndex.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index acf6b740f9..6d5df9f7c1 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -341,7 +341,6 @@ public: bool VisitAddrLabelExpr(AddrLabelExpr *E); bool VisitVAArgExpr(VAArgExpr *E); bool VisitDesignatedInitExpr(DesignatedInitExpr *E); - bool VisitCXXTypeidExpr(CXXTypeidExpr *E); bool VisitCXXUuidofExpr(CXXUuidofExpr *E); bool VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E); bool VisitCXXPseudoDestructorExpr(CXXPseudoDestructorExpr *E); @@ -1525,17 +1524,6 @@ bool CursorVisitor::VisitDesignatedInitExpr(DesignatedInitExpr *E) { return Visit(MakeCXCursor(E->getInit(), 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::VisitCXXUuidofExpr(CXXUuidofExpr *E) { if (E->isTypeOperand()) { if (TypeSourceInfo *TSInfo = E->getTypeOperandSourceInfo()) @@ -1707,6 +1695,7 @@ public: void VisitCXXNewExpr(CXXNewExpr *E); void VisitCXXOperatorCallExpr(CXXOperatorCallExpr *E); void VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *E); + void VisitCXXTypeidExpr(CXXTypeidExpr *E); void VisitCXXUnresolvedConstructExpr(CXXUnresolvedConstructExpr *E); void VisitDeclRefExpr(DeclRefExpr *D); void VisitDeclStmt(DeclStmt *S); @@ -1792,6 +1781,11 @@ void EnqueueVisitor::VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *E) { EnqueueChildren(E); AddTypeLoc(E->getTypeSourceInfo()); } +void EnqueueVisitor::VisitCXXTypeidExpr(CXXTypeidExpr *E) { + EnqueueChildren(E); + if (E->isTypeOperand()) + AddTypeLoc(E->getTypeOperandSourceInfo()); +} void EnqueueVisitor::VisitCXXUnresolvedConstructExpr(CXXUnresolvedConstructExpr *E) { -- 2.50.1