[llvm-dev] Error while iterating over callee nodes in CallGraph
Niddodi, Chaitra via llvm-dev
llvm-dev at lists.llvm.org
Sun Dec 15 20:07:19 PST 2019
Despite making sure, it is not NULL, I still get a segmentation fault.
Code:
if((cgn->getFunction())==NULL)
continue;
errs()<<cgn->getFunction()->getName()<<"\n";
Error:
0 opt 0x00000000011d2302 llvm::sys::PrintStackTrace(_IO_FILE*) + 34
1 opt 0x00000000011d1eb4
2 libpthread.so.0 0x00007fea1847c330
3 libcgwalk.so 0x00007fea1767f596
4 opt 0x00000000010ddb45 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 709
5 opt 0x0000000000552724 main + 2452
6 libc.so.6 0x00007fea178a4f45 __libc_start_main + 245
7 opt 0x000000000056d865
Stack dump:
0. Program arguments: opt -load build/proj/libcgwalk.so -cgwalk
1. Running pass 'Cgwalk' on module '<stdin>'.
Segmentation fault (core dumped)
Also, using getName() on the main function prints out an empty string - errs()<<cg[M.getFunction("main")]->getFunction()->getName()<<"\n";
There seems to be some issue with CallGraph generation.
Thanks,
Chaitra
________________________________
From: Doerfert, Johannes
Sent: Sunday, December 15, 2019 8:38 PM
To: Niddodi, Chaitra
Cc: llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] Error while iterating over callee nodes in CallGraph
On 12/15, Niddodi, Chaitra via llvm-dev wrote:
> for (CallGraphNode::iterator ti = cgm->begin(); ti != cgm->end(); ++ti)
> {
> CallGraphNode * cgn = ti->second;
> if(cgn==NULL)
> continue;
> errs()<<cgn->getFunction()<<"\n";
> errs()<<cgn->getFunction()->getName()<<"\n";
I think the function (cgn->getFunction()) can be NULL (to indicate
special edges). Make sure it isn't.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191216/fa363ab0/attachment.html>
More information about the llvm-dev
mailing list