How to get parameter information as a string from FunctionDecl class in clang . I'm trying but getting confused by so many inheritances. Also they compiler is saying that getReturnType() is not a member of FunctionDecl but doxygen documentation says otherwise . Please help. http://clang.llvm.org/doxygen/classclang_1_1FunctionDecl.html
using namespace std;
using namespace clang;
using namespace clang::driver;
using namespace clang::tooling;
using namespace llvm;
.......
class ExampleVisitor : public RecursiveASTVisitor<ExampleVisitor>
{
......
virtual bool VisitFunctionDecl(FunctionDecl *func)
{
numFunctions++;
string funcName = func->getNameInfo().getName().getAsString();
string retName = func->getReturnType().getAsString();
...
return true;
}
}
Errors:-
‘class clang::FunctionDecl’ has no member named ‘getReturnType’
Depending if you need a qualified or unqualified name, you can stringify your return type and parameter names as follows
std::string retType = F->getReturnType().getAsString();
std::string arg0;
if(F->getNumParams() > 0)
arg0 = F->parameters()[0]->getQualifiedNameAsString();
Check out the getAsString() method provided.
Edit: after your comments I figured out that you don't have the latest Clang source code. Please check it out before retrying. Good luck!
try this,
getResultType()
rather than
getReturnType()
llvm 3.4 has no member getReturnType()
but identical function whose name is getResultType()
exists.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With