<div>Hi Joshua,</div><div>      I have a function foo and I want to insert exit(0) at the end of foo. The problem is M.getFunction returns null, which is understandable. I am not sure what to do. Below is the code snippet. </div>
<div><br></div><div>void foo(int argc, char* argv[]) {</div><div>  printf("hello world\n");</div><div>  exit(0); //***I want to insert this exit</div><div>}</div><div><br></div><div>My llvm code snippet is </div>
<div><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="949.54">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #2a00ff}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f0055}
span.s1 {color: #005032}
span.s2 {color: #7f0055}
span.s3 {color: #642880}
span.s4 {color: #2a00ff}
span.s5 {color: #000000}
span.s6 {color: #0000c0}
span.Apple-tab-span {white-space:pre}
</style>


<p class="p1"><span class="s1">vector</span><<span class="s2">const</span> <span class="s1">Type</span> *> params = vector<<span class="s2">const</span> <span class="s1">Type</span> *>();</p>
<p class="p1">params.push_back(<span class="s1">Type</span>::<span class="s3">getInt32Ty</span>(M.getContext()));</p>
<p class="p1"><span class="s1">FunctionType</span> *fType = <span class="s1">FunctionType</span>::<span class="s3">get</span>(<span class="s1">Type</span>::<span class="s3">getVoidTy</span>(M.getContext()),<span class="Apple-tab-span">       </span><span class="Apple-tab-span">      </span><span class="Apple-tab-span">      </span><span class="Apple-tab-span">      </span>params, <span class="s2">false</span>);</p>

<p class="p1"><span class="s1">Constant</span> *temp = M.<span class="s3">getFunction</span>(<span class="s4">"exit"</span>, fType);</p>
<p class="p1"><span class="s2">if</span>(!temp){</p>
<p class="p2"><span class="s5"><span class="Apple-tab-span">    </span><span class="Apple-tab-span">      </span></span><span class="s3">errs</span><span class="s5">() << </span>"exit function not in symbol table\n"<span class="s5">;</span></p>

<p class="p1"><span class="Apple-tab-span">     </span><span class="Apple-tab-span">      </span><span class="s3">exit</span>(1);</p>
<p class="p1"><span class="Apple-tab-span">     </span>}</p>
<p class="p1"><span class="s1">Function</span> *f = cast<<span class="s1">Function</span>>(temp);</p>
<p class="p1"><font class="Apple-style-span" color="#7F0055"><br></font></p><p class="p1"><font class="Apple-style-span" color="#7F0055">


<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="949.54">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #005032}
span.s1 {color: #000000}
</style>


</font></p><p class="p1"><font class="Apple-style-span" color="#7F0055">CallInst<span class="s1"> *ci = </span>CallInst<span class="s1">::Create(...)</span></font></p><p></p><p class="p1"><span class="Apple-style-span" style="color: rgb(127, 0, 85); "><span class="s5"><br>
</span></span></p></div><div><br></div><br><div class="gmail_quote">On Thu, Mar 31, 2011 at 2:46 PM, Joshua Warner <span dir="ltr"><<a href="mailto:joshuawarner32@gmail.com">joshuawarner32@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi George,<br><br>Could you be a more specific about what you are trying to do, how you are trying to do it, and what is failing.  A couple of relevant snippets of code would do wonders in helping you.<br>
<br>Thanks,<br><br>
Joshua<br><br><div class="gmail_quote"><div><div></div><div class="h5">On Wed, Mar 30, 2011 at 3:59 PM, George Baah <span dir="ltr"><<a href="mailto:georgebaah@gmail.com" target="_blank">georgebaah@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex"><div><div></div><div class="h5">
Hi Everyone,<div>    I am trying to insert an exit function into my IR.</div><div>However, I thought I can get access to exit by using </div><div>Module.getOrInsertFunction or Module.getFunction. However, I am </div><div>

getting a null value returned. I have searched through the llvmdev archives </div>
<div>but not found any thing that addresses this question.</div><div><br></div><div>Any help will be greatly appreciated. Thanks.</div><div><br></div><font color="#888888"><div>George      </div>
</font><br></div></div>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br>
</blockquote></div><br>