From 3dc31f14c22af61d5074e9fff65049be7e7ee518 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sat, 4 Jan 1992 08:17:14 +0000 Subject: [PATCH] Initial revision From-SVN: r158 --- gcc/assert.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 gcc/assert.h diff --git a/gcc/assert.h b/gcc/assert.h new file mode 100644 index 00000000000..7d1c5f89faa --- /dev/null +++ b/gcc/assert.h @@ -0,0 +1,42 @@ +/* Allow this file to be included multiple times + with different settings of NDEBUG. */ +#undef assert +#undef __assert + +#ifdef NDEBUG +#define assert(ignore) ((void) 0) +#else + +#ifndef __GNUC__ + +#define assert(expression) \ + ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__))) + +#define __assert(expression, file, lineno) \ + (printf ("%s:%d: failed assertion\n", file, lineno), \ + abort (), 0) + +#else +void __eprintf (); /* Defined in libgcc.a */ + +#ifdef __STDC__ + +#define assert(expression) \ + ((void) ((expression) ? 0 : __assert (#expression, __FILE__, __LINE__))) + +#define __assert(expression, file, line) \ + (__eprintf ("%s:%d: failed assertion `%s'\n", \ + file, line, expression), 0) + +#else /* no __STDC__; i.e. -traditional. */ + +#define assert(expression) \ + ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__))) + +#define __assert(expression, file, lineno) \ + (__eprintf ("%s:%d: failed assertion `%s'\n", \ + file, lineno, "expression"), 0) + +#endif /* no __STDC__; i.e. -traditional. */ +#endif /* no __GNU__; i.e., /bin/cc. */ +#endif