mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-17 04:12:34 +03:00
754f9336f0
git-svn-id: svn://kolibrios.org@4349 a494cfbc-eb01-0410-851d-a64ba20cac60
51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
/*
|
|
assert.h
|
|
*/
|
|
#ifndef _NEWLIB_ASSERT_H
|
|
#define _NEWLIB_ASSERT_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "_ansi.h"
|
|
|
|
#undef assert
|
|
|
|
#ifdef NDEBUG /* required by ANSI standard */
|
|
# define assert(__e) ((void)0)
|
|
#else
|
|
# define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \
|
|
__ASSERT_FUNC, #__e))
|
|
|
|
# ifndef __ASSERT_FUNC
|
|
/* Use g++'s demangled names in C++. */
|
|
# if defined __cplusplus && defined __GNUC__
|
|
# define __ASSERT_FUNC __PRETTY_FUNCTION__
|
|
|
|
/* C99 requires the use of __func__. */
|
|
# elif __STDC_VERSION__ >= 199901L
|
|
# define __ASSERT_FUNC __func__
|
|
|
|
/* Older versions of gcc don't have __func__ but can use __FUNCTION__. */
|
|
# elif __GNUC__ >= 2
|
|
# define __ASSERT_FUNC __FUNCTION__
|
|
|
|
/* failed to detect __func__ support. */
|
|
# else
|
|
# define __ASSERT_FUNC ((char *) 0)
|
|
# endif
|
|
# endif /* !__ASSERT_FUNC */
|
|
#endif /* !NDEBUG */
|
|
|
|
void _EXFUN(__assert, (const char *, int, const char *)
|
|
_ATTRIBUTE ((__noreturn__)));
|
|
void _EXFUN(__assert_func, (const char *, int, const char *, const char *)
|
|
_ATTRIBUTE ((__noreturn__)));
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _NEWLIB_ASSERT_H */
|