John Regehr on "Use of Assertions"
Meta
jared771 at gmail.com
Mon Sep 3 16:53:35 UTC 2018
On Saturday, 1 September 2018 at 20:15:15 UTC, Walter Bright
wrote:
> https://blog.regehr.org/archives/1091
>
> As usual, John nails it in a particularly well-written essay.
>
> "ASSERT(expr)
> Asserts that an expression is true. The expression may or may
> not be evaluated.
> If the expression is true, execution continues normally.
> If the expression is false, what happens is undefined."
>
> Note the "may or may not be evaluated." We've debated this here
> before. I'm rather pleased that John agrees with me on this.
> I.e. the optimizer can assume the expression is true and use
> that information to generate better code, even if the assert
> code generation is turned off.
I used to completely agree with your position about asserts being
used for optimization purposes, until I realized that part of
your position was for asserts to be used as optimization hints
*even if they aren't checked*.
This battle has been fought over and over, with no movement on
either side, so I'll just comment that nobody what John Nails or
anyone else says, my personal opinion is that you're 100% wrong
on that point :-)
More information about the Digitalmars-d
mailing list