> if so, the assembly language docs say that<br>
> program behavior is undefined if such a function<br>> ever returns.<br><br>Yes, that's true, but for some static analysis applications such as control dependence analysis for programs that have arbitrary interprocedural control flow, one needs these additional non-executable control flow edges from noreturn functions to their immediate CFG successor.<br>
<br>Is there any way to avoid having the unreachables inserted in the first place?<br><br>Max<br><br><br><div class="gmail_quote">On Sun, Sep 6, 2009 at 2:55 PM, Kenneth Uildriks <span dir="ltr"><<a href="mailto:kennethuil@gmail.com">kennethuil@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">What do you mean by "terminating function call"?  Is it one with the<br>
"noreturn" attribute?  if so, the assembly language docs say that<br>
program behavior is undefined if such a function ever returns.  If<br>
your function could possibly return, it needs to not have that<br>
attribute.<br>
<div><div></div><div class="h5"><br>
On Sun, Sep 6, 2009 at 4:49 PM, Max<br>
Stonebraker<<a href="mailto:max.stonebraker@gmail.com">max.stonebraker@gmail.com</a>> wrote:<br>
> Hello all,<br>
><br>
> LLVM inserts unreachable instructions after every call to a terminating<br>
> function. Is there a way to disable this feature so that it treats<br>
> terminating function calls like any other function call, so the unreachable<br>
> instruction would not be inserted? Unfortunately, simply removing the<br>
> unreachable instructions after the fact would not suffice for my needs<br>
> because I need to preserve the original control flow of the program. That<br>
> is, I need to know the instruction that would have been executed if the call<br>
> to the terminating function didn't actually terminate the program.<br>
><br>
> Thanks!<br>
><br>
> Max<br>
><br>
</div></div>> _______________________________________________<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>
><br>
</blockquote></div><br>