[cfe-commits] r118986 - /cfe/trunk/tools/libclang/CIndex.cpp
Ted Kremenek
kremenek at apple.com
Fri Nov 12 21:38:04 PST 2010
Author: kremenek
Date: Fri Nov 12 23:38:03 2010
New Revision: 118986
URL: http://llvm.org/viewvc/llvm-project?rev=118986&view=rev
Log:
CursorVisitor: special-case CompoundStmt in data-recursion algorithm so we don't have to enqueue
its children and then reverse them.
Modified:
cfe/trunk/tools/libclang/CIndex.cpp
Modified: cfe/trunk/tools/libclang/CIndex.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=118986&r1=118985&r2=118986&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CIndex.cpp (original)
+++ cfe/trunk/tools/libclang/CIndex.cpp Fri Nov 12 23:38:03 2010
@@ -1749,6 +1749,7 @@
void VisitBlockExpr(BlockExpr *B);
void VisitCompoundLiteralExpr(CompoundLiteralExpr *E);
+ void VisitCompoundStmt(CompoundStmt *S);
void VisitCXXOperatorCallExpr(CXXOperatorCallExpr *E);
void VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *E);
void VisitDeclRefExpr(DeclRefExpr *D);
@@ -1806,6 +1807,12 @@
EnqueueChildren(E);
AddTypeLoc(E->getTypeSourceInfo());
}
+void EnqueueVisitor::VisitCompoundStmt(CompoundStmt *S) {
+ for (CompoundStmt::reverse_body_iterator I = S->body_rbegin(),
+ E = S->body_rend(); I != E; ++I) {
+ AddStmt(*I);
+ }
+}
void EnqueueVisitor::VisitCXXOperatorCallExpr(CXXOperatorCallExpr *CE) {
// Note that we enqueue things in reverse order so that
// they are visited correctly by the DFS.
More information about the cfe-commits
mailing list