[Mesa-dev] [PATCH] mesa: do not define NDEBUG to make sure assert work

Kenneth Graunke kenneth at whitecape.org
Sat Oct 8 02:17:29 PDT 2011


On 10/08/2011 02:08 AM, Yuanhan Liu wrote:
> If you include "mtypes.h", which would define macro NDEBUG, before
> including "compiler.h", you would find that the assert macro will no
> longer work; it just make it slient by replacing it with ((void) (0));
> 
> Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>
> ---
>  src/mesa/main/mtypes.h |    3 ---
>  1 files changed, 0 insertions(+), 3 deletions(-)
> 
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 749324d..5edecf2 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3336,9 +3336,6 @@ extern int MESA_DEBUG_FLAGS;

Isn't this intentional?  To give some context to the patch:

   #ifdef DEBUG
   extern int MESA_VERBOSE;
   extern int MESA_DEBUG_FLAGS;
   # define MESA_FUNCTION __FUNCTION__
   #else
>  # define MESA_VERBOSE 0
>  # define MESA_DEBUG_FLAGS 0
>  # define MESA_FUNCTION "a function"
> -# ifndef NDEBUG
> -#  define NDEBUG
> -# endif
>  #endif

So NDEBUG only gets defined if !DEBUG.  In other words, assertions
happen if you build with --enable-debug, but not in release mode (since
it's extra overhead).


More information about the mesa-dev mailing list