Annotation of gcc/assert.h, revision 1.1.1.4

1.1       root        1: /* Allow this file to be included multiple times
                      2:    with different settings of NDEBUG.  */
                      3: #undef assert
                      4: #undef __assert
                      5: 
                      6: #ifdef NDEBUG
                      7: #define assert(ignore) ((void) 0)
                      8: #else
                      9: 
                     10: #ifndef __GNUC__
                     11: 
                     12: #define assert(expression)  \
                     13:   ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))
                     14: 
                     15: #define __assert(expression, file, lineno)  \
1.1.1.2   root       16:   (printf ("%s:%u: failed assertion\n", file, lineno), \
1.1       root       17:    abort (), 0)
                     18: 
                     19: #else
                     20: 
1.1.1.2   root       21: #if defined(__STDC__) || defined (__cplusplus)
1.1       root       22: 
                     23: /* Defined in libgcc.a */
1.1.1.2   root       24: #ifdef __cplusplus
                     25: extern "C" {
1.1.1.4 ! root       26: extern void __eprintf (const char *, const char *, unsigned, const char *)
        !            27:     __attribute__ ((noreturn));
1.1.1.2   root       28: }
                     29: #else
1.1.1.4 ! root       30: extern void __eprintf (const char *, const char *, unsigned, const char *)
        !            31:     __attribute__ ((noreturn));
1.1.1.2   root       32: #endif
1.1       root       33: 
                     34: #define assert(expression)  \
                     35:   ((void) ((expression) ? 0 : __assert (#expression, __FILE__, __LINE__)))
                     36: 
                     37: #define __assert(expression, file, line)  \
1.1.1.2   root       38:   (__eprintf ("%s:%u: failed assertion `%s'\n",                \
1.1       root       39:              file, line, expression), 0)
                     40: 
1.1.1.2   root       41: #else /* no __STDC__ and not C++; i.e. -traditional.  */
1.1       root       42: 
1.1.1.4 ! root       43: extern void __eprintf () __attribute__ ((noreturn)); /* Defined in libgcc.a */
1.1       root       44: 
                     45: #define assert(expression)  \
                     46:   ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))
                     47: 
                     48: #define __assert(expression, file, lineno)  \
1.1.1.2   root       49:   (__eprintf ("%s:%u: failed assertion `%s'\n",                \
1.1       root       50:              file, lineno, "expression"), 0)
                     51: 
1.1.1.2   root       52: #endif /* no __STDC__ and not C++; i.e. -traditional.  */
1.1       root       53: #endif /* no __GNU__; i.e., /bin/cc.  */
                     54: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.