SILC_VERIFY

NAME

    #define SILC_VERIFY(experssion)

DESCRIPTION

Verification macro that prints error message to stderr and calls abort() if the `expression' is false (ie. compares equal to zero) on debug builds (SILC_DEBUG defined), and prints error message to stderr on release builds (SILC_DEBUG undefined) but does not abort(). This macro is always compiled even if debugging (SILC_DEBUG) is not defined.

SOURCE

#if defined(SILC_DEBUG)
#define SILC_VERIFY(expr) assert((expr));
#else
#define SILC_VERIFY(expr)                                               \
  if (silc_unlikely(!(expr))) {                                         \
    SILC_LOG_ERROR(("SILC_VERIFY %s:%s:%d",                             \
                    __FILE__, __FUNCTION__, __LINE__));                 \
    silc_set_errno_reason_nofail(SILC_ERR_ASSERT, "SILC_VERIFY %s:%s:%d", \
                                 __FILE__, __FUNCTION__, __LINE__);     \
  }
#endif /* SILC_DEBUG */