X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a39490aee6e3105ced79e3b595db130f414a46bf..4c81b43195fca7768fe5b7db1a93b51b41b8f28a:/include/wx/debug.h?ds=sidebyside diff --git a/include/wx/debug.h b/include/wx/debug.h index 6af819ed92..c2fc985ec2 100644 --- a/include/wx/debug.h +++ b/include/wx/debug.h @@ -127,7 +127,7 @@ #ifdef __cplusplus /* Use of wxFalse instead of false suppresses compiler warnings about testing */ /* constant expression */ - WXDLLIMPEXP_DATA_BASE(extern const bool) wxFalse; + extern WXDLLIMPEXP_DATA_BASE(const bool) wxFalse; #endif #define wxAssertFailure wxFalse @@ -198,12 +198,27 @@ It may be used both within a function and in the global scope. */ -#define wxCOMPILE_TIME_ASSERT(expr, msg) \ - struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; } +#if defined(__WATCOMC__) && defined(__cplusplus) + /* avoid "unused symbol" warning */ + #define wxCOMPILE_TIME_ASSERT(expr, msg) \ + class wxMAKE_UNIQUE_ASSERT_NAME { \ + unsigned int msg: expr; \ + wxMAKE_UNIQUE_ASSERT_NAME() { wxUnusedVar(msg); } \ + } +#else + #define wxCOMPILE_TIME_ASSERT(expr, msg) \ + struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; } +#endif +/* + When using VC++ 6 with "Edit and Continue" on, the compiler completely + mishandles __LINE__ and so wxCOMPILE_TIME_ASSERT() doesn't work, provide a + way to make "unique" assert names by specifying a unique prefix explicitly + */ +#define wxMAKE_UNIQUE_ASSERT_NAME2(text) wxCONCAT(wxAssert_, text) -/* for compatibility only, don't use any more, not needed */ -#define wxCOMPILE_TIME_ASSERT2(expr, msg, text) wxCOMPILE_TIME_ASSERT(expr, msg) +#define wxCOMPILE_TIME_ASSERT2(expr, msg, text) \ + struct wxMAKE_UNIQUE_ASSERT_NAME2(text) { unsigned int msg: expr; } /* helpers for wxCOMPILE_TIME_ASSERT below, for private use only */ #define wxMAKE_BITSIZE_MSG(type, size) type ## SmallerThan ## size ## Bits @@ -218,12 +233,15 @@ /* other miscellaneous debugger-related functions */ /* ---------------------------------------------------------------------------- */ -/* return true if we're running under debugger */ -/* */ -/* currently this only really works under Mac in CodeWarrior builds, it always */ -/* returns false otherwise */ +/* + Return true if we're running under debugger. + + Currently this only really works under Win32 and Mac in CodeWarrior builds, + it always returns false in other cases. + */ #ifdef __cplusplus - #ifdef __WXMAC__ + /* ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port */ + #if defined(__WXMAC__) || defined(__WIN32__) extern bool WXDLLIMPEXP_BASE wxIsDebuggerRunning(); #else /* !Mac */ inline bool wxIsDebuggerRunning() { return false; } @@ -231,4 +249,3 @@ #endif /* __cplusplus */ #endif /* _WX_DEBUG_H_ */ -