[cfe-dev] How do I retrieve all non-local variables a function has access to?
Artem Dergachev via cfe-dev
cfe-dev at lists.llvm.org
Sun Jul 21 08:04:12 PDT 2019
Note that match() doesn't automatically recursively descend into the
node. So it should be either matchAST(varDecl()) or
Generally, though, i'd recommend taking a look at DeclContext's methods
to see if you have anything readily available. Or, at least, you should
probably take a look how DeclContext::lookup() is implemented.
On 7/21/19 3:42 AM, Kristóf Umann via cfe-dev wrote:
> I'm trying to implement a primitive reaching definitions algorithm for
> C++, but am struggling a bit. I'd like to make all function calls be
> definitions of global/static variables, but I can't seem to retrieve
> I tried using AST matchers (match() to be precise) on a
> TranslationUnitDecl, but I can't seem to be able to match varDecl()s
> at all. Is there a reason for this? When I use clang-query, "m
> varDecl()" works like a charm, but match() doesn't seem to.
> In any case, I can retrieve local variables by matching declStmt() and
> some non-local ones when inspecting the LHS of assignments (I need to
> do this anyways to find all definitions), but I feel like I'm not the
> first person trying to recover all accessible variables to a function.
> Could anyone give me some guidance please? :)
> P.S. This is the patch I'm working on: https://reviews.llvm.org/D64991
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
More information about the cfe-dev