/*
* Copyright (c) 2000-2001 Proofpoint, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*
* $Id: assert.h,v 1.11 2013-11-22 20:51:31 ca Exp $
*/
/*
** libsm abnormal program termination and assertion checking
** See libsm/assert.html for documentation.
*/
#ifndef SM_ASSERT_H
# define SM_ASSERT_H
/*
** abnormal program termination
*/
extern SM_DEAD(void
const char *,
int,
const char *)));
extern void
char *,
...)));
/*
** assertion checking
*/
# ifndef SM_CHECK_ALL
# endif /* ! SM_CHECK_ALL */
# ifndef SM_CHECK_REQUIRE
# endif /* ! SM_CHECK_REQUIRE */
# ifndef SM_CHECK_ENSURE
# endif /* ! SM_CHECK_ENSURE */
# ifndef SM_CHECK_ASSERT
# endif /* ! SM_CHECK_ASSERT */
# if SM_CHECK_REQUIRE
# if defined(__STDC__) || defined(__cplusplus)
# else /* defined(__STDC__) || defined(__cplusplus) */
"SM_REQUIRE(cond) failed"), 0)))
# endif /* defined(__STDC__) || defined(__cplusplus) */
# else /* SM_CHECK_REQUIRE */
# endif /* SM_CHECK_REQUIRE */
# if SM_CHECK_ENSURE
# if defined(__STDC__) || defined(__cplusplus)
# else /* defined(__STDC__) || defined(__cplusplus) */
"SM_ENSURE(cond) failed"), 0)))
# endif /* defined(__STDC__) || defined(__cplusplus) */
# else /* SM_CHECK_ENSURE */
# endif /* SM_CHECK_ENSURE */
# if SM_CHECK_ASSERT
# if defined(__STDC__) || defined(__cplusplus)
# else /* defined(__STDC__) || defined(__cplusplus) */
"SM_ASSERT(cond) failed"), 0)))
# endif /* defined(__STDC__) || defined(__cplusplus) */
# else /* SM_CHECK_ASSERT */
# endif /* SM_CHECK_ASSERT */
extern SM_DEBUG_T SmExpensiveRequire;
extern SM_DEBUG_T SmExpensiveEnsure;
extern SM_DEBUG_T SmExpensiveAssert;
#endif /* ! SM_ASSERT_H */