2000-02-18 03:38:33 +08:00
|
|
|
/*
|
|
|
|
* assert.h
|
2004-04-21 06:49:32 +08:00
|
|
|
* This file has no copyright assigned and is placed in the Public Domain.
|
|
|
|
* This file is a part of the mingw-runtime package.
|
|
|
|
* No warranty is given; refer to the file DISCLAIMER within the package.
|
2000-02-18 03:38:33 +08:00
|
|
|
*
|
|
|
|
* Define the assert macro for debug output.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2005-02-11 15:17:00 +08:00
|
|
|
/* We should be able to include this file multiple times to allow the assert
|
|
|
|
macro to be enabled/disabled for different parts of code. So don't add a
|
|
|
|
header guard. */
|
|
|
|
|
|
|
|
#ifndef RC_INVOKED
|
2000-02-18 03:38:33 +08:00
|
|
|
|
|
|
|
/* All the headers include this file. */
|
|
|
|
#include <_mingw.h>
|
|
|
|
|
2005-02-11 15:17:00 +08:00
|
|
|
#undef assert
|
2000-02-18 03:38:33 +08:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef NDEBUG
|
|
|
|
/*
|
|
|
|
* If not debugging, assert does nothing.
|
|
|
|
*/
|
2001-01-31 02:03:23 +08:00
|
|
|
#define assert(x) ((void)0)
|
2000-02-18 03:38:33 +08:00
|
|
|
|
|
|
|
#else /* debugging enabled */
|
|
|
|
|
|
|
|
/*
|
|
|
|
* CRTDLL nicely supplies a function which does the actual output and
|
|
|
|
* call to abort.
|
|
|
|
*/
|
2007-06-23 15:34:16 +08:00
|
|
|
_CRTIMP void __cdecl __MINGW_NOTHROW _assert (const char*, const char*, int) __MINGW_ATTRIB_NORETURN;
|
2000-02-18 03:38:33 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Definition of the assert macro.
|
|
|
|
*/
|
|
|
|
#define assert(e) ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__))
|
2005-02-11 15:17:00 +08:00
|
|
|
|
2000-02-18 03:38:33 +08:00
|
|
|
#endif /* NDEBUG */
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* Not RC_INVOKED */
|