1*f5736e95SDavid du Colombier /* 2*f5736e95SDavid du Colombier * fail.h 3*f5736e95SDavid du Colombier * Copyright (C) 1998-2000 A.J. van Os; Released under GPL 4*f5736e95SDavid du Colombier * 5*f5736e95SDavid du Colombier * Description: 6*f5736e95SDavid du Colombier * Support for an alternative form of assert() 7*f5736e95SDavid du Colombier */ 8*f5736e95SDavid du Colombier 9*f5736e95SDavid du Colombier #if !defined(__fail_h) 10*f5736e95SDavid du Colombier #define __fail_h 1 11*f5736e95SDavid du Colombier 12*f5736e95SDavid du Colombier #undef fail 13*f5736e95SDavid du Colombier 14*f5736e95SDavid du Colombier #if defined(NDEBUG) 15*f5736e95SDavid du Colombier #define fail(e) ((void)0) 16*f5736e95SDavid du Colombier #else 17*f5736e95SDavid du Colombier #define fail(e) ((e) ? __fail(#e, __FILE__, __LINE__) : (void)0) 18*f5736e95SDavid du Colombier #endif /* NDEBUG */ 19*f5736e95SDavid du Colombier 20*f5736e95SDavid du Colombier extern void __fail(char *, char *, int); 21*f5736e95SDavid du Colombier 22*f5736e95SDavid du Colombier #endif /* __fail_h */ 23