On 06/22/2010 05:36 PM, Ali Çehreli wrote:
Jonathan M Davis wrote:
 > Steven Schveighoffer wrote:

 >> all calls to assert are removed by the compiler in release mode. I
don't
 >> think there's a way to implement that via a library (it would be nice
 >> though!)

 > Also IIRC, the compiler uses assert(0) to ensure that functions blow
up at
 > runtime if you manage to hit the end of them without a return statement.

I just read in TDPL that the assert(0) calls in user code are not
removed even in release mode.

Ali

Really?

// test.d
void main(){
 assert(0);
}

$ dmd test -release
$ ./test
Segmentation fault (core dumped)

good job, dmd. Can anyone see if anything is going on here?

Reply via email to