2000-02-18 03:38:33 +08:00
|
|
|
/*
|
|
|
|
* assert.h
|
|
|
|
*
|
|
|
|
* Define the assert macro for debug output.
|
|
|
|
*
|
|
|
|
* This file is part of the Mingw32 package.
|
|
|
|
*
|
|
|
|
* Contributors:
|
|
|
|
* Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
|
|
*
|
|
|
|
* This source code is offered for use in the public domain. You may
|
|
|
|
* use, modify or distribute it freely.
|
|
|
|
*
|
|
|
|
* This code is distributed in the hope that it will be useful but
|
|
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
|
|
* DISCLAMED. This includes but is not limited to warranties of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
*
|
|
|
|
* $Revision$
|
|
|
|
* $Author$
|
|
|
|
* $Date$
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _ASSERT_H_
|
|
|
|
#define _ASSERT_H_
|
|
|
|
|
|
|
|
/* All the headers include this file. */
|
|
|
|
#include <_mingw.h>
|
|
|
|
|
|
|
|
#ifndef RC_INVOKED
|
|
|
|
|
|
|
|
#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.
|
|
|
|
*/
|
|
|
|
void _assert (const char*, const char*, int)
|
|
|
|
#ifdef __GNUC__
|
|
|
|
__attribute__ ((noreturn))
|
|
|
|
#endif
|
|
|
|
;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Definition of the assert macro.
|
|
|
|
*/
|
|
|
|
#define assert(e) ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__))
|
|
|
|
#endif /* NDEBUG */
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* Not RC_INVOKED */
|
|
|
|
|
|
|
|
#endif /* Not _ASSERT_H_ */
|
|
|
|
|