diff --git a/dios/include/assert.h b/dios/include/assert.h index 55c33dd8775d0dada40d7a47dda98adfdb346349..d0f4dbc3fdd753b490ac42f09f517c2239a3e020 100644 --- a/dios/include/assert.h +++ b/dios/include/assert.h @@ -13,17 +13,16 @@ #undef _assert #ifdef NDEBUG -# define assert(e) ((void)0) -# define _assert(e) ((void)0) +# define assert(e) ((void)0) +# define _assert(e) ((void)0) #else -# define _assert(e) assert(e) -# define assert(e) ((e) ? (void)0 : __assert_fail(#e, __FILE__, __LINE__, __func__)) +# define _assert(e) assert(e) +# define assert(e) ( (e) ? (void) 0 : __assert_fail(#e, __FILE__, __LINE__, __PRETTY_FUNCTION__) ) #endif #ifndef _ASSERT_H_ #define _ASSERT_H_ __BEGIN_DECLS -void __assert_fail( const char *__assertion, const char *__file, unsigned int __line, const char *__function ) - _PDCLIB_nothrow; +void __assert_fail( const char *, const char *, unsigned, const char * ) __nothrow; __END_DECLS #endif diff --git a/dios/libc/_PDCLIB/assert.c b/dios/libc/_PDCLIB/assert.c index b487eed224ccf22e0b31bab7531225099c6fb071..aacd4fc02d095b7e2191fca91303bf6e491a4cd2 100644 --- a/dios/libc/_PDCLIB/assert.c +++ b/dios/libc/_PDCLIB/assert.c @@ -15,10 +15,11 @@ #include <_PDCLIB/cdefs.h> -void __assert_fail( const char *__assertion, const char *__file, unsigned int __line, const char *__function ) +void __assert_fail( const char *stmt, const char *file, unsigned line, const char *fun ) { - __dios_trace_f( "Assertion failed: %s, file %s, line %u.", __assertion, __file, __line ); - __dios_fault( _VM_F_Assert, NULL ); + char buffer[ 200 ]; + snprintf( buffer, 200, "%s:%u: %s: assertion '%s' failed", file, line, fun, stmt ); + __dios_fault( _VM_F_Assert, buffer ); } #endif