xref: /386bsd/usr/src/usr.bin/groff/include/assert.h (revision a2142627)
1 // -*- C++ -*-
2 /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
3      Written by James Clark (jjc@jclark.com)
4 
5 This file is part of groff.
6 
7 groff is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
10 version.
11 
12 groff is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License along
18 with groff; see the file COPYING.  If not, write to the Free Software
19 Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
20 
21 #ifndef ASSERT_H
22 #define ASSERT_H
23 #ifdef __GNUG__
24 volatile
25 #endif
26 void assertion_failed(int, const char *);
27 
do_assert(int expr,int line,const char * file)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