xref: /openbsd-src/usr.sbin/npppd/common/debugmacro.h (revision ae505340fa6cd9b637a58920f2b9e69bbedfbeac)
1*ae505340Stb /*	$OpenBSD: debugmacro.h,v 1.3 2015/12/17 08:01:55 tb Exp $ */
20fbf3537Syasuoka /*-
30fbf3537Syasuoka  * Copyright (c) 2009 Internet Initiative Japan Inc.
40fbf3537Syasuoka  * All rights reserved.
50fbf3537Syasuoka  *
60fbf3537Syasuoka  * Redistribution and use in source and binary forms, with or without
70fbf3537Syasuoka  * modification, are permitted provided that the following conditions
80fbf3537Syasuoka  * are met:
90fbf3537Syasuoka  * 1. Redistributions of source code must retain the above copyright
100fbf3537Syasuoka  *    notice, this list of conditions and the following disclaimer.
110fbf3537Syasuoka  * 2. Redistributions in binary form must reproduce the above copyright
120fbf3537Syasuoka  *    notice, this list of conditions and the following disclaimer in the
130fbf3537Syasuoka  *    documentation and/or other materials provided with the distribution.
140fbf3537Syasuoka  *
150fbf3537Syasuoka  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
160fbf3537Syasuoka  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
170fbf3537Syasuoka  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
180fbf3537Syasuoka  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
190fbf3537Syasuoka  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
200fbf3537Syasuoka  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
210fbf3537Syasuoka  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
220fbf3537Syasuoka  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
230fbf3537Syasuoka  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
240fbf3537Syasuoka  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
250fbf3537Syasuoka  * SUCH DAMAGE.
260fbf3537Syasuoka  */
270fbf3537Syasuoka #ifndef	DEBUG_MACRO_H
280fbf3537Syasuoka #define	DEBUG_MACRO_H 1
290fbf3537Syasuoka 
300fbf3537Syasuoka #if ((__STDC_VERSION__ - 0) >= 199901L)
310fbf3537Syasuoka #define _FUNC_  __func__
320fbf3537Syasuoka #else
330fbf3537Syasuoka #define _FUNC_  ""
340fbf3537Syasuoka #endif
350fbf3537Syasuoka 
360fbf3537Syasuoka #ifndef ASSERT
370fbf3537Syasuoka #ifdef	DEBUG
380fbf3537Syasuoka #define ASSERT(x)	\
390fbf3537Syasuoka 	if (!(x)) { \
400fbf3537Syasuoka 	    fprintf(stderr, \
410fbf3537Syasuoka 		"\nASSERT(%s) failed on %s() at %s:%d.\n" \
420fbf3537Syasuoka 		, #x, _FUNC_, __FILE__, __LINE__); \
430fbf3537Syasuoka 	    abort(); \
440fbf3537Syasuoka 	}
450fbf3537Syasuoka #else
460fbf3537Syasuoka #define ASSERT(x)	((void)0);
470fbf3537Syasuoka #endif
480fbf3537Syasuoka #endif
490fbf3537Syasuoka 
500fbf3537Syasuoka #endif
51