[Mesa-dev] [PATCH] mesa: do not define NDEBUG to make sure assert work
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@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; # define MESA_VERBOSE 0 # define MESA_DEBUG_FLAGS 0 # define MESA_FUNCTION a function -# ifndef NDEBUG -# define NDEBUG -# endif #endif -- 1.7.4.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] mesa: do not define NDEBUG to make sure assert work
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@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). ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] mesa: do not define NDEBUG to make sure assert work
On Sat, Oct 08, 2011 at 02:17:29AM -0700, Kenneth Graunke wrote: 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@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). Thanks for the explanation. I thought assertion is a must. But from your point, it's just for debug purpose. Thanks, Yuanhan Liu ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev