diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-05-04 01:00:35 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-05-04 01:00:35 +0000 |
commit | 6c57a4703d7e9e25897e0a44423a44a410110fa7 (patch) | |
tree | b3371d7c9e9bccdc40974cadd14a1d852f1a9d8d /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | da7513a8340192ca7473e0b6698e52cbdc1cb0ac (diff) | |
download | llvm-6c57a4703d7e9e25897e0a44423a44a410110fa7.zip llvm-6c57a4703d7e9e25897e0a44423a44a410110fa7.tar.gz llvm-6c57a4703d7e9e25897e0a44423a44a410110fa7.tar.bz2 |
Make RecursiveASTVisitor fully data recursive on Stmts, with
minimal disruption on its clients.
Unlike the previous data-recursive scheme, Traverse*Stmt methods are
always getting called. The base methods of RecursiveASTVisitor will enqueue
the sub-statements instead of calling TraverseStmt on them.
Clients that override a Traverse*Stmt method and call TraverseStmt will
still function as function-recursive traversal; if a client wants to
enqueue a sub-statement in its override method it can do it like this:
[inside the override method]
StmtQueueAction StmtQueue(*this);
StmtQueue.queue(Stmt->getSubStmt());
Should address rdar://11179167.
llvm-svn: 156141
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions