1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
//------------------------------------------------------------------------------
// GB_abort.h: assertions for all of GraphBLAS, including JIT kernels
//------------------------------------------------------------------------------
// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2025, All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//------------------------------------------------------------------------------
#ifndef GB_ABORT_H
#define GB_ABORT_H
typedef void (*GB_abort_f) (const char *file, int line) ;
#ifdef GB_JIT_RUNTIME
// JIT kernels call GB_abort via a callback function pointer
static GB_abort_f GB_abort = (GB_abort_f) NULL ;
#else
// primary functions in the GraphBLAS library, including PreJIT kernels,
// call GB_abort as a compile-time function, not a function pointer.
void GB_abort (const char *file, int line) ;
#endif
// this assertion is always enabled
#define GB_assert(X) \
{ \
if (!(X)) \
{ \
GB_abort (__FILE__, __LINE__) ; \
} \
}
#ifdef GB_DEBUG
// assert X is true
#define ASSERT(X) GB_assert (X)
#else
// debugging disabled
#define ASSERT(X)
#endif
#define GB_IMPLIES(p,q) (!(p) || (q))
#endif
|