<div dir="ltr"><div><div><div><div><div><div><div>Dear all,<br><br></div>I would like to keep track of all the indirect calls that may caused from function<br></div>pointers inside a program. I need this in order to be able to construct the control<br>
</div>flow graph of all the indirect calls, that is which function is legal to call another<br></div>function.<br><br></div>Is there a module that implements this functionality in llvm? If not, is there a way to<br>do it? Maybe through implementing a pass. I am new to llvm. Could you suggest me<br>
</div><div>a way to start doing this? Perhaps the llvm intermediate code can help me on this.<br></div><div>Do you know where this code is being produced? or what files or passes do I have<br></div><div>to modify for this?<br>
<br></div><div>Until now I have used this command to produce and study the llvm bitcode for a test<br>program:<br>clang -S -emit-llvm fpointers.c -c -o fpointers.bc.text<br><br></div><div>Thank you,<br></div><div><br><div>
<div><div><div><div>-- <br><font color="#888888"><font face="Helvetica, Verdana, Arial"><span style="font-size:11pt"><font color="#888888"><span>Thanasis</span> <span>Petsas</span><div>
Distributed Computing Systems (<span>DCS</span>)<br>
Institute of Computer Science (ICS/FORTH)<br>
Heraklion, Crete<br>
<span>Greece</span> (GR)<br><br><font color="#888888"><font face="Helvetica, Verdana, Arial"><span style="font-size:11pt"><font color="#888888"><a href="http://www.thanasispetsas.com/" target="_blank">http://www.thanasispetsas.com/</a></font></span></font></font><br>
</div></font></span></font></font>
</div></div></div></div></div></div></div></div>