<div dir="ltr">Hi, Folks!<div>There are restrictions on the IR that is allowed inside a funclet which are not enforced by the verifier. </div><div>Among them:<br></div><div><ul><li>[1]<i> No variables live into or out of the funclet can be allocated in registers.</i></li><li>[2]<i> If any funclet EH pads have been “entered” but not “exited” it is undefined behavior to execute a call or invoke which:</i></li><ul><li><i>does not have a "funclet" bundle and is not a call to a nounwind intrinsic, or</i></li><li><i>has a "funclet" bundle whose operand is not the most-recently-entered not-yet-exited funclet EH pad.</i></li></ul></ul><div>Is there any reason for the Verifier not to enforce these constraints? I started to add these checks to the Verifier.</div><div><br></div><div>Cheers,</div><div>Juan</div><div><i><br></i></div><div>[1] <a href="http://llvm.org/docs/ExceptionHandling.html#id32">http://llvm.org/docs/ExceptionHandling.html#id32</a></div><div>[2] <a href="http://llvm.org/docs/LangRef.html#funclet-operand-bundles">http://llvm.org/docs/LangRef.html#funclet-operand-bundles</a></div></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr"><p dir="ltr">Juan Manuel Martinez Caamaño</p>
</div></div>