[llvm-dev] CallGraphNode giving incorrect function Name
Ketan Patil via llvm-dev
llvm-dev at lists.llvm.org
Wed Jul 12 23:53:46 PDT 2017
Hi,
I am trying to traverse the call graph. Once I get a node in the call
graph, I am trying to print the function name corresponding to that call
graph node as well as the number of references.
Results:
1)The function name is always an empty string.
2)The number of references is always a random number.
3)Also the called functions names are also an empty string.
Code:
bool runOnModule(llvm::Module &M) override
{
CallGraph cg = CallGraph(M);
cg.dump();// this is correct. It is printing the expected the call
graph
for ( CallGraph::const_iterator itr = cg.begin(), ie = cg.end() ;
itr != ie; itr++)
{
if (itr->second != nullptr)
{
itr->second->dump();
errs()<<"-----------CGN---------\n";
CallGraphNode *cgn = itr->second.get();
if(const Function* fptr = cgn->getFunction())
{
errs()<<"Number of references
are"<<cgn->getNumReferences()<<"\n";
errs()<<fptr->getName()<<"\n";
if(cgn->operator[](0) != nullptr)
{
if(cgn->operator[](0)->getFunction() != nullptr)
{
errs()<<cgn->operator[](0)->getFunction()->getName()<<"\n";
}
}
}
}
}
}
Thanks and regards
-Ketan Patil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170713/66bcaaaf/attachment-0001.html>
More information about the llvm-dev
mailing list