1 /* @(#)assert.h 1.1 09/08/07 Copyright 2009 J. Schilling */ 2 /* 3 * Abstraction code for assert.h 4 * 5 * Copyright (c) 2009 J. Schilling 6 */ 7 /* 8 * The contents of this file are subject to the terms of the 9 * Common Development and Distribution License, Version 1.0 only 10 * (the "License"). You may not use this file except in compliance 11 * with the License. 12 * 13 * See the file CDDL.Schily.txt in this distribution for details. 14 * A copy of the CDDL is also available via the Internet at 15 * http://www.opensource.org/licenses/cddl1.txt 16 * 17 * When distributing Covered Code, include this CDDL HEADER in each 18 * file and include the License file CDDL.Schily.txt from this distribution. 19 */ 20 21 #ifndef _SCHILY_ASSERT_H 22 #define _SCHILY_ASSERT_H 23 24 #ifndef _SCHILY_MCONFIG_H 25 #include <schily/mconfig.h> 26 #endif 27 28 #ifdef HAVE_ASSERT_H 29 #ifndef _INCL_ASSERT_H 30 #define _INCL_ASSERT_H 31 #include <assert.h> 32 #endif 33 #else /* !HAVE_ASSERT_H */ 34 35 #undef assert 36 37 #ifdef NDEBUG 38 #define assert(ignore) ((void) 0) 39 #else 40 #if defined(__STDC__) 41 #define assert(exp) (void)((exp) || (__assert(#exp, __FILE__, __LINE__), 0)) 42 #else 43 #define assert(exp) (void)((exp) || (__assert("exp", __FILE__, __LINE__), 0)) 44 #endif 45 #endif 46 47 #endif /* !HAVE_ASSERT_H */ 48 49 #endif /* _SCHILY_ASSERT_H */ 50