http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53323
--- Comment #6 from simon at pushface dot org 2013-03-23 12:14:00 UTC --- (In reply to comment #5) > Sort of, we now disable the front-end assertions on release branches. Hmm, this doesn't really seem appropriate. Quoting Robert Dewar in [1] (talking about contracts, but it must apply here), "Like all runtime checks, these checks can optionally be removed for the final production build. This is often done in safety-critical applications such as aircraft software, where the verification process provides sufficient confidence that the checks will not fail. [...] In this context, the runtime checks are a means to the end of making sure they are not needed. But in other contexts, if the extra inefficiency is not a problem, it may well make sense to leave the checks enabled. Better to have an ATM machine shut down than to get an undetected error and hand out the wrong amount of money." ... or have a compiler generate incorrect code. (NB, in this case I accept that it may well be the check that's wrong, not the generated code). [1] http://www.drdobbs.com/architecture-and-design/ada-2012-ada-with-contracts/240150569?cid=twitter_