[cfe-dev] unable to traverse FunctionTemplateDecl (right name?) with either RecursiveASTVisitor or Matcher

Nikola Smiljanic popizdeh at gmail.com
Mon Dec 1 15:01:26 PST 2014


What happens if you add a call to template function inside main?

h(1);

On Tue, Dec 2, 2014 at 8:11 AM, John P. Feltz <jfeltz at gmail.com> wrote:

>  Did you look at my failing test-case that I attached earlier?
> Specifically:
>
> ...
> class Vis : public RecursiveASTVisitor<Vis> {
> public:
>   Vis(SourceManager& sm_) : sm(sm_) {}
>
>   bool VisitFunctionTemplateDecl(FunctionTemplateDecl *tf) {
>     std::cout << "visiting template func decl" << std::endl;
>     return true;
>   }
>   bool VisitFunctionDecl(FunctionDecl *f) {
>     std::cout << "visiting func decl: " << f->getNameInfo().getAsString()
> << std::endl;
>     return true;
>   }
>
>   SourceManager& sm;
> };
> ...
>
> Neither functions find h().
>
>
> On 11/29/2014 08:40 PM, James Dennett wrote:
>
>  On Sat, Nov 29, 2014 at 2:48 PM, John P. Feltz <jfeltz at gmail.com> wrote:
>
>> Hi,
>>
>> I can't seem to traverse the following with either a RecursiveASTVisitor
>> or a AST Matcher converted to an ASTConsumer:
>>
>> template<typename T> void h(T x) { .. }
>>
>> First some things I'd like to note:
>> 1) $ llvm-config --version
>> 3.5.0
>>
>> 2) 'clang' actually does find the template function, so I suspect I'm
>> doing something wrong in either the visitor and matcher, or in the compiler
>> setup:
>> $ clang -Xclang -ast-dump -fsyntax-only file.cc
>> ..
>> FunctionTemplateDecl 0x23e5330 <line:13:1, line:15:1> line:13:27 h
>> ..
>>
>> 3) I am not a C++ expert, and I am a libtooling newbie.
>>
>> I've attached the parsed subject (file.cc) and the code I'm using to
>> build and run the test-case.
>>
>>
>  You might try visiting the FunctionDecl and then calling
> getDescribedFunctionTemplate
> <https://cs.corp.google.com/#piper///depot/google3/third_party/llvm/llvm/tools/clang/include/clang/AST/Decl.h&ct=xref_jump_to_def&cl=GROK&l=2013&gsn=getDescribedFunctionTemplate> on
> it to get the associated FunctionTemplateDecl.
>
>  -- James
>
>
>
> _______________________________________________
> 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/20141202/5661165b/attachment.html>


More information about the cfe-dev mailing list