diff options
author | Ted Kremenek <kremenek@apple.com> | 2010-11-17 00:50:43 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2010-11-17 00:50:43 +0000 |
commit | 9d3bf79d94c961af95144ef63bbd6f9f3f32c59a (patch) | |
tree | 593409bb66d4b047c4fd5d78b849125862d6e5ab | |
parent | b8dd1cad52be63b18092bd9d9335cbeee3f5de9f (diff) |
CursorVisitor: migrate handling of
VAArgExpr to data-recursion algorithm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119440 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/libclang/CIndex.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index 6d5df9f7c1..717db17f0e 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -339,7 +339,6 @@ public: bool VisitOffsetOfExpr(OffsetOfExpr *E); bool VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E); bool VisitAddrLabelExpr(AddrLabelExpr *E); - bool VisitVAArgExpr(VAArgExpr *E); bool VisitDesignatedInitExpr(DesignatedInitExpr *E); bool VisitCXXUuidofExpr(CXXUuidofExpr *E); bool VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E); @@ -1486,13 +1485,6 @@ bool CursorVisitor::VisitAddrLabelExpr(AddrLabelExpr *E) { return Visit(MakeCursorLabelRef(E->getLabel(), E->getLabelLoc(), TU)); } -bool CursorVisitor::VisitVAArgExpr(VAArgExpr *E) { - if (Visit(E->getWrittenTypeInfo()->getTypeLoc())) - return true; - - return Visit(MakeCXCursor(E->getSubExpr(), StmtParent, TU)); -} - bool CursorVisitor::VisitDesignatedInitExpr(DesignatedInitExpr *E) { // Visit the designators. typedef DesignatedInitExpr::Designator Designator; @@ -1712,6 +1704,7 @@ public: void VisitTypesCompatibleExpr(TypesCompatibleExpr *E); void VisitWhileStmt(WhileStmt *W); void VisitUnresolvedMemberExpr(UnresolvedMemberExpr *U); + void VisitVAArgExpr(VAArgExpr *E); private: void AddStmt(Stmt *S); @@ -1870,6 +1863,10 @@ void EnqueueVisitor::VisitUnresolvedMemberExpr(UnresolvedMemberExpr *U) { if (!U->isImplicitAccess()) AddStmt(U->getBase()); } +void EnqueueVisitor::VisitVAArgExpr(VAArgExpr *E) { + AddStmt(E->getSubExpr()); + AddTypeLoc(E->getWrittenTypeInfo()); +} void CursorVisitor::EnqueueWorkList(VisitorWorkList &WL, Stmt *S) { EnqueueVisitor(WL, MakeCXCursor(S, StmtParent, TU)).Visit(S); |