1 /* $NetBSD: assert.h,v 1.1.1.1 2016/01/13 18:41:48 christos Exp $ */ 2 3 // -*- C++ -*- 4 /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. 5 Written by James Clark (jjc@jclark.com) 6 7 This file is part of groff. 8 9 groff is free software; you can redistribute it and/or modify it under 10 the terms of the GNU General Public License as published by the Free 11 Software Foundation; either version 2, or (at your option) any later 12 version. 13 14 groff is distributed in the hope that it will be useful, but WITHOUT ANY 15 WARRANTY; without even the implied warranty of MERCHANTABILITY or 16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 17 for more details. 18 19 You should have received a copy of the GNU General Public License along 20 with groff; see the file COPYING. If not, write to the Free Software 21 Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ 22 23 #ifndef ASSERT_H 24 #define ASSERT_H 25 26 void assertion_failed(int, const char *); 27 28 inline void do_assert(int expr, int line, const char *file) 29 { 30 if (!expr) 31 assertion_failed(line, file); 32 } 33 #endif /* ASSERT_H */ 34 35 #undef assert 36 37 #ifdef NDEBUG 38 #define assert(ignore) /* as nothing */ 39 #else 40 #define assert(expr) do_assert(expr, __LINE__, __FILE__) 41 #endif 42