Hi Xiu,<div><br></div><div>The Verifier pass runs a PreVerifier pass, which does not honour the action argument,</div><div>and will always abort on a broken module, (Line 106, lib/VMCore/Verifier.cpp)</div><div><br></div><div>
Perhaps you should file a bug against this, to allow you to not abort if you so wish.</div><div><br></div><div>Joey<br><br><div class="gmail_quote">On 11 June 2012 09:41, Guowei Xu <span dir="ltr"><<a href="mailto:myesis@gmail.com" target="_blank">myesis@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello everyone:<br><br>        I have a little question about the second argument <em>action</em> of verifyFunction.<br>
        <br>        In docs:<br><br><dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellpadding="0" cellspacing="2">

<tbody><tr><td valign="top"><em>AbortProcessAction</em> </td><td>
<p>verifyModule will print to stderr and abort() </p>
</td></tr>
<tr><td valign="top"><em>PrintMessageAction</em> </td><td>
<p>verifyModule will print to stderr and return true </p>
</td></tr>
<tr><td valign="top"><em>ReturnStatusAction</em> </td><td>
<p>verifyModule will just return true </p></td></tr></tbody></table></dd></dl><br>       But it still abort when I pass PrintMessageAction/ReturnStatusAction to function. <br><br>Log:<br>       Basic Block in function 'jitmain' does not have terminator!<br>

       label %load_store<br>       LLVM ERROR: Broken module, no Basic Block terminator!<br><br>       <br>       Is there something wrong?<br><br><br>Best regards,<br>-myesis<br>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">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></div>