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_

Reply via email to