asserts in debug and release code
Justin Johansson
no at spam.com
Wed Nov 4 15:31:49 PST 2009
BCS Wrote:
> Hello Justin,
>
> > With respect to the dmd -release compiler switch,
> > are assert statements meant to be compiled in release code?
> > Whilst the D1 spec says "The compiler may optionally not evaluate
> > assert expressions at all.",
> > my intuition suggests that asserts would/should be evaluated (i.e.
> > compiled in) when using -debug
>
> -debug turns on debug{} sections
>
> > compiler switch and not when using the -release switch (and if neither
> > switch who knows what***)
>
> -release turns off asserts and bounds checks
Thanks BCS for reply.
Initially I thought something was odd as (using Digital Mars D Compiler v1.050)
my asserts were firing even with -release switch but just now realised
had -unittest flicked as well. So in summary this is the observation:
(no -debug or -release) leaves asserts on (consistent with what you say)
-debug -release flicks asserts off (consistent with what you say)
-unittest -release leaves asserts on :-)
So -unittest takes precedence over -release wrt asserts.
Okay, that seems reasonable.
beers
Justin
More information about the Digitalmars-d-learn
mailing list