38 lines
753 B
C
38 lines
753 B
C
#pragma once
|
|
|
|
#include <hwo/utils.h>
|
|
|
|
#if defined(DEBUG_ASSERTIONS)
|
|
#pragma message "ASSERTIONS: DEBUG MODE"
|
|
|
|
|
|
void _assert(int result,int16_t loc);
|
|
void _assert_read(void);
|
|
|
|
static inline int _noassert(int r,int16_t loc) {
|
|
if (r<0)
|
|
{
|
|
_assert( r, loc );
|
|
};
|
|
return r;
|
|
};
|
|
|
|
int32_t _assert_current(void);
|
|
int32_t _assert_current_error(void);
|
|
|
|
#define assert2(f,p) { int r = (f); if (r<0) { _assert( r, p ); return r; }; }
|
|
#define assert(f) assert2( f, getPC() )
|
|
#define noassert(f) _noassert( (f), getPC() )
|
|
|
|
#else
|
|
#define assert2(f,p) (f)
|
|
#define assert(f) { int r = (f); if (r<0) { return r; }; }
|
|
#define noassert(f) (f)
|
|
|
|
#define _assert_read() (0)
|
|
#define _assert_current_error() (0)
|
|
#define _assert_current() (0)
|
|
|
|
|
|
#endif
|