/* tab:8 * * local_assert.h - assertion definitions and generic macro protection * * "Copyright (c) 1997 by Steve Lumetta and The Regents of the University * of California. All rights reserved." * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice and the following * two paragraphs appear in all copies of this software. * * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * * Author: Steve Lumetta * Version: 2 * Creation Date: Thu Mar 6 15:31:08 1997 * Filename: local_assert.h * History: * SL 2 Wed Feb 17 18:54:40 1999 * Modified for HTTP push server. * SL 1 Thu Mar 6 15:31:08 1997 * Extracted from another system of mine. */ #ident "$Id$" #ifndef _LOCAL_ASSERT_H #define _LOCAL_ASSERT_H #include "print_error.h" #ifndef NDEBUG #define ASSERT_STRING static const char* static_local_filename = __FILE__ #define ASSERT(expr) \ if (expr) { \ } else { \ print_log ("Assert failed: file \"%s,\" line %d.\n", \ static_local_filename, __LINE__); \ abort (); \ } #else /* NDEBUG */ #define ASSERT_STRING #define ASSERT(expr) #endif /* NDEBUG */ #endif /* _LOCAL_ASSERT_H */