Blame include/macros.h

Packit 8a864e
// Copyright (c) 1994 James Clark
Packit 8a864e
// See the file COPYING for copying permission.
Packit 8a864e
Packit 8a864e
#ifndef macros_INCLUDED
Packit 8a864e
#define macros_INCLUDED 1
Packit 8a864e
Packit 8a864e
#ifndef __GNUG__
Packit 8a864e
#define __attribute__(args) /* as nothing */
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifdef NDEBUG
Packit 8a864e
Packit 8a864e
#include <stdlib.h>
Packit 8a864e
#define ASSERT(expr) ((void)0)
Packit 8a864e
#define CANNOT_HAPPEN() ((void)abort())
Packit 8a864e
Packit 8a864e
#else /* not NDEBUG */
Packit 8a864e
Packit 8a864e
#ifdef SP_USE_OWN_ASSERT
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
namespace SP_NAMESPACE {
Packit 8a864e
#endif
Packit 8a864e
extern SP_API void assertionFailed(const char *, const char *, int)
Packit 8a864e
     __attribute__((noreturn));
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
}
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#define ASSERT(expr) \
Packit 8a864e
  ((void)((expr) || \
Packit 8a864e
  (::SP_NAMESPACE_SCOPE assertionFailed(# expr, __FILE__, __LINE__), 0)))
Packit 8a864e
Packit 8a864e
#else /* not SP_USE_OWN_ASSERT */
Packit 8a864e
#ifdef SP_ANSI_LIB
Packit 8a864e
#include <cassert>
Packit 8a864e
#else /* not SP_ANSI_LIB */
Packit 8a864e
#include <assert.h>
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#define ASSERT(expr) assert(expr)
Packit 8a864e
#endif /* not SP_USE_OWN_ASSERT */
Packit 8a864e
Packit 8a864e
#define CANNOT_HAPPEN() ASSERT(0)
Packit 8a864e
Packit 8a864e
#endif /* not NDEBUG */
Packit 8a864e
Packit 8a864e
#define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
Packit 8a864e
Packit 8a864e
#endif /* not macros_INCLUDED */