diff options
Diffstat (limited to 'clang/tools/libclang')
| -rw-r--r-- | clang/tools/libclang/CIndex.cpp | 13 | 
1 files changed, 5 insertions, 8 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 6d5df9f7c10..717db17f0ed 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/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);  | 

