aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-11-17 00:50:52 +0000
committerTed Kremenek <kremenek@apple.com>2010-11-17 00:50:52 +0000
commit1e7e877091187556bb6d644ab2b7c00a628121eb (patch)
tree0eb7d1bfe0b968b932e47255e49f193795b9abea
parent2939b6f356161f572712d4d6310b65f9599e3675 (diff)
CursorVisitor: migrate handling of CXXUuidofExpr to
data-recursion algorithm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119444 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/libclang/CIndex.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 7f4bf6629d..f4e355707c 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -340,7 +340,6 @@ public:
bool VisitOffsetOfExpr(OffsetOfExpr *E);
bool VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E);
bool VisitDesignatedInitExpr(DesignatedInitExpr *E);
- bool VisitCXXUuidofExpr(CXXUuidofExpr *E);
bool VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E);
bool VisitCXXPseudoDestructorExpr(CXXPseudoDestructorExpr *E);
bool VisitDependentScopeDeclRefExpr(DependentScopeDeclRefExpr *E);
@@ -1511,17 +1510,6 @@ bool CursorVisitor::VisitDesignatedInitExpr(DesignatedInitExpr *E) {
return Visit(MakeCXCursor(E->getInit(), StmtParent, TU));
}
-bool CursorVisitor::VisitCXXUuidofExpr(CXXUuidofExpr *E) {
- if (E->isTypeOperand()) {
- if (TypeSourceInfo *TSInfo = E->getTypeOperandSourceInfo())
- return Visit(TSInfo->getTypeLoc());
-
- return false;
- }
-
- return VisitExpr(E);
-}
-
bool CursorVisitor::VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E) {
if (TypeSourceInfo *TSInfo = E->getTypeSourceInfo())
return Visit(TSInfo->getTypeLoc());
@@ -1696,6 +1684,7 @@ public:
void VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *E);
void VisitCXXTypeidExpr(CXXTypeidExpr *E);
void VisitCXXUnresolvedConstructExpr(CXXUnresolvedConstructExpr *E);
+ void VisitCXXUuidofExpr(CXXUuidofExpr *E);
void VisitDeclRefExpr(DeclRefExpr *D);
void VisitDeclStmt(DeclStmt *S);
void VisitExplicitCastExpr(ExplicitCastExpr *E);
@@ -1804,6 +1793,11 @@ void EnqueueVisitor::VisitCXXUnresolvedConstructExpr(CXXUnresolvedConstructExpr
EnqueueChildren(E);
AddTypeLoc(E->getTypeSourceInfo());
}
+void EnqueueVisitor::VisitCXXUuidofExpr(CXXUuidofExpr *E) {
+ EnqueueChildren(E);
+ if (E->isTypeOperand())
+ AddTypeLoc(E->getTypeOperandSourceInfo());
+}
void EnqueueVisitor::VisitDeclRefExpr(DeclRefExpr *DR) {
if (DR->hasExplicitTemplateArgs()) {
AddExplicitTemplateArgs(&DR->getExplicitTemplateArgs());
@@ -1970,10 +1964,8 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) {
case Stmt::OffsetOfExprClass:
case Stmt::SizeOfAlignOfExprClass:
case Stmt::DesignatedInitExprClass:
- case Stmt::CXXUuidofExprClass:
case Stmt::CXXScalarValueInitExprClass:
case Stmt::CXXPseudoDestructorExprClass:
- case Stmt::UnaryTypeTraitExprClass:
case Stmt::DependentScopeDeclRefExprClass:
case Stmt::CXXDependentScopeMemberExprClass:
if (Visit(Cursor))