11#if !defined(PSNIP_DEBUG_TRAP_H) 
   12#define PSNIP_DEBUG_TRAP_H 
   14#if !defined(PSNIP_NDEBUG) && defined(NDEBUG) && !defined(PSNIP_DEBUG) 
   15#  define PSNIP_NDEBUG 1 
   18#if defined(__has_builtin) && !defined(__ibmxl__) 
   19#  if __has_builtin(__builtin_debugtrap) 
   20#    define psnip_trap() __builtin_debugtrap() 
   21#  elif __has_builtin(__debugbreak) 
   22#    define psnip_trap() __debugbreak() 
   25#if !defined(psnip_trap) 
   26#  if defined(_MSC_VER) || defined(__INTEL_COMPILER) 
   27#    define psnip_trap() __debugbreak() 
   28#  elif defined(__ARMCC_VERSION) 
   29#    define psnip_trap() __breakpoint(42) 
   30#  elif defined(__ibmxl__) || defined(__xlC__) 
   32#    define psnip_trap() __trap(42) 
   33#  elif defined(__DMC__) && defined(_M_IX86) 
   34     static inline void psnip_trap(
void) { __asm 
int 3h; }
 
   35#  elif defined(__i386__) || defined(__x86_64__) 
   36     static inline void psnip_trap(
void) { __asm__ __volatile__(
"int3"); }
 
   37#  elif defined(__thumb__) 
   38     static inline void psnip_trap(
void) { __asm__ __volatile__(
".inst 0xde01"); }
 
   39#  elif defined(__aarch64__) 
   40     static inline void psnip_trap(
void) { __asm__ __volatile__(
".inst 0xd4200000"); }
 
   41#  elif defined(__arm__) 
   42     static inline void psnip_trap(
void) { __asm__ __volatile__(
".inst 0xe7f001f0"); }
 
   43#  elif defined (__alpha__) && !defined(__osf__) 
   44     static inline void psnip_trap(
void) { __asm__ __volatile__(
"bpt"); }
 
   46     static inline void psnip_trap(
void) { __asm__ __volatile__(
"ESTOP"); }
 
   48     static inline void psnip_trap(
void) { __asm__ __volatile__(
";\n .if (.MNEMONIC)\n ESTOP_1\n .else\n ESTOP_1()\n .endif\n NOP"); }
 
   50     static inline void psnip_trap(
void) { __asm__ __volatile__(
"SWBP 0"); }
 
   52     static inline void psnip_trap(
void) { __asm__ __volatile__(
"NOP\n .word 0x10000000"); }
 
   53#  elif defined(__STDC_HOSTED__) && (__STDC_HOSTED__ == 0) && defined(__GNUC__) 
   54#    define psnip_trap() __builtin_trap() 
   58#      define psnip_trap() raise(SIGTRAP) 
   60#      define psnip_trap() raise(SIGABRT) 
   65#if defined(HEDLEY_LIKELY) 
   66#  define PSNIP_DBG_LIKELY(expr) HEDLEY_LIKELY(expr) 
   67#elif defined(__GNUC__) && (__GNUC__ >= 3) 
   68#  define PSNIP_DBG_LIKELY(expr) __builtin_expect(!!(expr), 1) 
   70#  define PSNIP_DBG_LIKELY(expr) (!!(expr)) 
   73#if !defined(PSNIP_NDEBUG) || (PSNIP_NDEBUG == 0) 
   74#  define psnip_dbg_assert(expr) do { \ 
   75    if (!PSNIP_DBG_LIKELY(expr)) { \ 
 
   80#  define psnip_dbg_assert(expr) 
#define psnip_trap()
Definition psnip_debug_trap.h:60