[cfe-dev] RecursiveASTVisitor for const Stmt?

Troy Johnson via cfe-dev cfe-dev at lists.llvm.org
Tue Nov 13 07:35:17 PST 2018


The RecursiveASTVisitor does not appear to support visiting const-qualified statements since its VisitStmt member function accepts a pointer to an unqualified Stmt:

https://clang.llvm.org/doxygen/classclang_1_1RecursiveASTVisitor.html

By contrast, the ast_matcher's getNodeAs function returns a pointer to a const-qualified node type:

https://clang.llvm.org/doxygen/classclang_1_1ast__matchers_1_1BoundNodes.html

I was using the ast_matcher but reached a point where I needed to apply a RecursiveASTVisitor to the result of a getNodeAs call to check for something deeply nested (without writing more matchers to get me through any possible thing I might encounter on the way down).  Unfortunately, it looks like I can't do that without resorting to an ugly const_cast and assuming that the visitor does not actually modify any Stmts.

Am I missing something?  Is there a const-alternative to RecursiveASTVisitor?

Thanks,
Troy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20181113/623a018d/attachment.html>


More information about the cfe-dev mailing list