handle _DEBUG/NDEBUG correctly

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11744 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2001-09-30 17:15:14 +00:00
parent b584b7d24a
commit 8b0bd21b3d

View File

@ -16,6 +16,32 @@
#include "wx/wxchar.h"
// ----------------------------------------------------------------------------
// Defines controlling the debugging macros
// ----------------------------------------------------------------------------
// if _DEBUG is defined (MS VC++ and others use it in debug builds), define
// __WXDEBUG__ too
#ifdef _DEBUG
#ifndef __WXDEBUG__
#define __WXDEBUG__
#endif // !__WXDEBUG__
#endif // _DEBUG
// if NDEBUG is defined (<assert.h> uses it), undef __WXDEBUG__ and WXDEBUG
#ifdef NDEBUG
#undef __WXDEBUG__
#undef WXDEBUG
#endif // NDEBUG
// if __WXDEBUG__ is defined, make sure that WXDEBUG is defined and >= 1
#ifdef __WXDEBUG__
#if !defined(WXDEBUG) || !WXDEBUG
#undef WXDEBUG
#define WXDEBUG 1
#endif // !WXDEBUG
#endif // __WXDEBUG__
// ----------------------------------------------------------------------------
// Debugging macros
//
@ -36,10 +62,6 @@
// a judicious use of them might increase your program's stability.
// ----------------------------------------------------------------------------
// Use of these suppresses compiler warnings about testing constant expression
WXDLLEXPORT_DATA(extern const bool) wxTrue;
WXDLLEXPORT_DATA(extern const bool) wxFalse;
// Macros which are completely disabled in 'release' mode
//
// NB: these functions are implemented in src/common/appcmn.cpp
@ -95,6 +117,10 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse;
#define wxASSERT_MSG(x, m)
#endif //__WXDEBUG__
// Use of wxFalse instead of FALSE suppresses compiler warnings about testing
// constant expression
WXDLLEXPORT_DATA(extern const bool) wxFalse;
// special form of assert: always triggers it (in debug mode)
#define wxFAIL wxASSERT(wxFalse)