[cfe-dev] How do I retrieve all non-local variables a function has access to?

Kristóf Umann via cfe-dev cfe-dev at lists.llvm.org
Sun Jul 21 03:42:34 PDT 2019


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 them.

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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20190721/4ab22ec5/attachment.html>

More information about the cfe-dev mailing list