<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hello-<div><br></div><div>I don't believe noreturn implies non-halting - not returning does not imply not unwinding.</div><div><br></div><div>Alistair</div><div><br><div><div>On 12 May 2010, at 14:41, Eric Schweitz wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">On Sun, May 2, 2010 at 9:32 AM, John Regehr <span dir="ltr"><<a href="mailto:regehr@cs.utah.edu">regehr@cs.utah.edu</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">> On reflection, perhaps this isn't so bad.  This really only matters when<br>
> the compiler is able to infer readnone/readonly, which typically doesn't<br>
> include cases with indirect calls.  Per #2, I think it could be handled<br>
> by making the GCC-style pure/const attributes imply both<br>
> readonly/readnone *and* halting.<br>
<br>
</div>This sounds right to me.<br>
<font color="#888888"><br>
John<br>
</font><div><div></div><br></div></blockquote><div> </div></div>Isn't a noreturn attribute (i.e., not "halting") a property of the control-flow whereas 
pure/const describe the class of effects of the function?  Why merge 
these distinct properties?<br><br>--<br>Eric<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">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></div></body></html>