[cfe-dev] How to use RecursiveASTVisitor of clang to visit the functions implementation in c++?

Manuel Klimek klimek at google.com
Mon Dec 23 03:41:13 PST 2013

On Thu, Dec 19, 2013 at 12:27 PM, lotay <158481612 at qq.com> wrote:

> For example: the entry file of filemanager is "testcase.cpp", which
> including
> "#include test01.h", and "test01.h" has a class "Test", which a method
> declaration "void sayHi();", and implementation of "sayHi" locates in
> "test01.cpp".
> For the above assumption, how can I use the the VisitCXXMethodDecl in
> RecursiveASTVisitor to get the implementation of sayHi(), and When invoke
> the method hasBody() of VisitCXXMethodDecl when visiting the sayHi()
> function, hasBody() return false.

You'll get a callback per declaration - in this case, you should get 2
calls of VisitCXXMethodDecl, and the second declaration is also a
definition, which will have hasBody() return true.

> The puzzle is how I can get the implementation of the sayHi() with
> "testcase.cpp" as the file entry of the source manager in the current
> CompilerInstance.
> For the constructor and deconstructor, the puzzles also arise....
> Thanks in advance!!
> --
> View this message in context:
> http://clang-developers.42468.n3.nabble.com/How-to-use-RecursiveASTVisitor-of-clang-to-visit-the-functions-implementation-in-c-tp4036699.html
> Sent from the Clang Developers mailing list archive at Nabble.com.
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20131223/ab33f854/attachment.html>

More information about the cfe-dev mailing list