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

John P. Feltz jfeltz at gmail.com
Sat Nov 29 14:48:31 PST 2014


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.

Thanks in advance,
John Feltz

-------------- next part --------------
A non-text attachment was scrubbed...
Name: file.cc
Type: text/x-c++src
Size: 264 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20141129/f48ff367/attachment.cc>
-------------- next part --------------
clang_testcase: clang_testcase.o
	g++ -O0 -std=c++11 -o clang_testcase clang_testcase.o -lpthread -ltinfo -ldl -lclangTooling -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangAnalysis -lclangARCMigrate -lclangRewriteFrontend -lclangEdit -lclangAST -lclangASTMatchers -lclangLex -lclangBasic -lz -L/usr/lib/llvm-3.5/lib -lLLVMLTO -lLLVMObjCARCOpts -lLLVMLinker -lLLVMipo -lLLVMVectorize -lLLVMBitWriter -lLLVMIRReader -lLLVMAsmParser -lLLVMR600CodeGen -lLLVMR600Desc -lLLVMR600Info -lLLVMR600AsmPrinter -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSystemZAsmPrinter -lLLVMHexagonCodeGen -lLLVMHexagonAsmPrinter -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMXCoreAsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMPowerPCDisassembler -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMPowerPCAsmPrinter -lLLVMSparcDisassembler -lLLVMSparcCodeGen -lLLVMSparcAsmParser -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMSparcAsmPrinter -lLLVMTableGen -lLLVMDebugInfo -lLLVMOption -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMJIT -lLLVMLineEditor -lLLVMMCAnalysis -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMInterpreter -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMProfileData -lLLVMMCJIT -lLLVMTarget -lLLVMRuntimeDyld -lLLVMObject -lLLVMMCParser -lLLVMBitReader -lLLVMExecutionEngine -lLLVMMC -lLLVMCore -lLLVMSupport

clang_testcase.o: clang_testcase.cc 
	g++ -O0 -std=c++11 -c clang_testcase.cc -o clang_testcase.o -I/usr/lib/llvm-3.5/include -D_GNU_SOURCE -D__STDC_LIMIT_MACROS `llvm-config --cxxflags` -fexceptions


clean: 
	rm clang_testcase clang_testcase.o
-------------- next part --------------
A non-text attachment was scrubbed...
Name: clang_testcase.cc
Type: text/x-c++src
Size: 4733 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20141129/f48ff367/attachment-0001.cc>


More information about the cfe-dev mailing list