<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 30, 2015 at 9:37 AM, Owen Anderson <span dir="ltr"><<a href="mailto:resistor@mac.com" target="_blank">resistor@mac.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Mar 29, 2015, at 4:45 PM, Chandler Carruth <<a href="mailto:chandlerc@gmail.com">chandlerc@gmail.com</a>> wrote:<br>
><br>
> I don't understand the requested change...<br>
><br>
> We already have the ability to say 'REQUIRES: asserts' when checking things only enabled in asserts builds.<br>
><br>
> It sounds like you want to check for things only enabled in *no-*asserts builds? I'm surprised any such things exist. My inclination is to say "we shouldn't have no-asserts emit data that we don't emit in asserts".<br>
<br>
</span>Our on-line compiler is designed to be both fast and fault-tolerant.  We place pre-conditions on the input that we expect our client to meet in order to maintain acceptable compile time guarantees, and we want to assert on those pre-conditions in a +asserts build.  However, violations of these preconditions are generally recoverable, at a compile time cost, and we want the production on-line compiler (-asserts) never to crash on an end-user’s device.<br></blockquote><div><br>In any case we came to the conclusion that these should be warnings/errors that can be disabled for the embedded use case & that seemed to make everyone happy, so we still don't need any behavior that can only be checked in a non-asserts build. \o/ Also, this means both the positive and negative behavior can be tested in any build of LLVM rather than parts only in asserts and other parts only in non-asserts builds. (Chandler was just a bit late to the party & seems to have had a bit of trouble finding the context/tail of the thread)<br><br>- David</div></div></div></div>