[BACK]Return to assert.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / include

Annotation of src/include/assert.h, Revision 1.9

1.9     ! kleink      1: /*     $NetBSD: assert.h,v 1.8 1999/09/15 23:53:26 lukem Exp $ */
1.6       cgd         2:
1.5       cgd         3: /*-
                      4:  * Copyright (c) 1992, 1993
                      5:  *     The Regents of the University of California.  All rights reserved.
                      6:  * (c) UNIX System Laboratories, Inc.
                      7:  * All or some portions of this file are derived from material licensed
                      8:  * to the University of California by American Telephone and Telegraph
                      9:  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
                     10:  * the permission of UNIX System Laboratories, Inc.
                     11:  *
                     12:  * Redistribution and use in source and binary forms, with or without
                     13:  * modification, are permitted provided that the following conditions
                     14:  * are met:
                     15:  * 1. Redistributions of source code must retain the above copyright
                     16:  *    notice, this list of conditions and the following disclaimer.
                     17:  * 2. Redistributions in binary form must reproduce the above copyright
                     18:  *    notice, this list of conditions and the following disclaimer in the
                     19:  *    documentation and/or other materials provided with the distribution.
                     20:  * 3. All advertising materials mentioning features or use of this software
                     21:  *    must display the following acknowledgement:
                     22:  *     This product includes software developed by the University of
                     23:  *     California, Berkeley and its contributors.
                     24:  * 4. Neither the name of the University nor the names of its contributors
                     25:  *    may be used to endorse or promote products derived from this software
                     26:  *    without specific prior written permission.
                     27:  *
                     28:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     29:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     30:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     31:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     32:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     33:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     34:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     35:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     36:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     37:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     38:  * SUCH DAMAGE.
                     39:  *
1.6       cgd        40:  *     @(#)assert.h    8.2 (Berkeley) 1/21/94
1.5       cgd        41:  */
                     42:
                     43: /*
                     44:  * Unlike other ANSI header files, <assert.h> may usefully be included
                     45:  * multiple times, with and without NDEBUG defined.
                     46:  */
                     47:
                     48: #undef assert
                     49: #undef _assert
                     50:
                     51: #ifdef NDEBUG
1.7       christos   52: # ifndef lint
                     53: #  define assert(e)    ((void)0)
                     54: #  define _assert(e)   ((void)0)
                     55: # else /* !lint */
                     56: #  define assert(e)
                     57: #  define _assert(e)
                     58: # endif /* lint */
                     59: #else /* !NDEBUG */
                     60: # define _assert(e)    assert(e)
1.9     ! kleink     61: # if __STDC__
1.7       christos   62: #  define assert(e)    ((e) ? (void)0 : __assert(__FILE__, __LINE__, #e))
                     63: # else /* PCC */
                     64: #  define assert(e)    ((e) ? (void)0 : __assert(__FILE__, __LINE__, "e"))
1.9     ! kleink     65: # endif /* !__STDC__ */
1.7       christos   66: #endif /* NDEBUG */
1.5       cgd        67:
1.8       lukem      68: #undef _DIAGASSERT
                     69: #if !defined(_DIAGNOSTIC)
                     70: # if !defined(lint)
                     71: #  define _DIAGASSERT(e) ((void)0)
                     72: # else /* !lint */
                     73: #  define _DIAGASSERT(e)
                     74: # endif /* lint */
                     75: #else /* _DIAGNOSTIC */
1.9     ! kleink     76: # if __STDC__
1.8       lukem      77: #  define _DIAGASSERT(e) ((e) ? (void)0 : __diagassert(__FILE__, __LINE__, #e))
                     78: # else /* !__STDC__ */
                     79: #  define _DIAGASSERT(e) ((e) ? (void)0 : __diagassert(__FILE__, __LINE__, "e"))
                     80: # endif
                     81: #endif /* _DIAGNOSTIC */
                     82:
                     83:
1.5       cgd        84: #include <sys/cdefs.h>
                     85:
                     86: __BEGIN_DECLS
                     87: void __assert __P((const char *, int, const char *));
1.8       lukem      88: void __diagassert __P((const char *, int, const char *));
1.5       cgd        89: __END_DECLS

CVSweb <webmaster@jp.NetBSD.org>