Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between -DNDEBUG and -DNS_BLOCK_ASSERTIONS flags

I've tried FauxPas source code analyzer and it showed me that I am missing -DNDEBUG flag, with next description:

This argument disables the C standard library assertion macro (as defined in assert.h).

Though, when I check my build settings I found very similar by description flag -DNS_BLOCK_ASSERTIONS=1.

So I wonder now. Do I really need the flag that FauxPas suggests or I am fine with the one I have?

like image 372
Ossir Avatar asked Nov 13 '15 11:11

Ossir


1 Answers

NDEBUG disables assert(), which is part of the C standard library. NS_BLOCK_ASSERTIONS disables NSAssert() which is part of Foundation. You generally will require both if you have both kinds of assertions in your code.

like image 144
Rob Napier Avatar answered Sep 28 '22 01:09

Rob Napier