28 lines
882 B
C
28 lines
882 B
C
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
|
|
/*
|
|
* (C) 2008 by Argonne National Laboratory.
|
|
* See COPYRIGHT in top-level directory.
|
|
*/
|
|
|
|
#ifndef OPA_UTIL_H_INCLUDED
|
|
#define OPA_UTIL_H_INCLUDED
|
|
|
|
#define OPA_QUOTE(x_) OPA_QUOTE2(x_)
|
|
#define OPA_QUOTE2(x_) #x_
|
|
|
|
#if defined(OPA_HAVE_GCC_ATTRIBUTE)
|
|
# define OPA_ATTRIBUTE(x_) __attribute__ (x_)
|
|
#else
|
|
# define OPA_ATTRIBUTE(x_)
|
|
#endif
|
|
|
|
/* FIXME this just needs a total rework in general with an OPA_NDEBUG or similar. */
|
|
#define OPA_assert(expr_) do {} while (0)
|
|
#define OPA_assertp(expr_) do { if (!(expr_)) ++((int *)NULL) } while (0) /* SEGV intentionally */
|
|
|
|
/* A compile-time assertion macro. It should cause a compilation error if (expr_) is false. */
|
|
#define OPA_COMPILE_TIME_ASSERT(expr_) \
|
|
do { switch(0) { case 0: case (expr_): default: break; } } while (0)
|
|
|
|
#endif /* OPA_UTIL_H_INCLUDED */
|