#pragma once #include #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) (f) #define noassert(f) (f) #define _assert_read() (0) #define _assert_current_error() (0) #define _assert_current() (0) #endif