diff --git a/src/common/assert/assert.h b/src/common/assert/assert.h index 55733b3..67d7dbd 100644 --- a/src/common/assert/assert.h +++ b/src/common/assert/assert.h @@ -27,16 +27,31 @@ BEGIN_C_LINKAGE #define wapp_debug_assert(EXPR, MSG) #endif -#define __wapp_runtime_assert(EXPR, MSG) do { \ - if (!(EXPR)) { \ - fprintf( \ - stderr, \ - "%s:%d (In function `%s`): Assertion failed (%" PRIu32 ")\nDiagnostic: %s\n\n", \ - __FILE__, __LINE__, __func__, \ - EXPR, MSG \ - ); \ - abort(); \ - } \ +#ifdef WAPP_PLATFORM_WINDOWS +#define __wapp_runtime_assert(EXPR, MSG) do { \ + __pragma(warning(push)) \ + __pragma(warning(disable:4127)) \ + if (!(EXPR)) { \ + __pragma(warning(pop)) \ + __runtime_assert_failed(EXPR, MSG); \ + } \ +} while(false) +#else +#define __wapp_runtime_assert(EXPR, MSG) do { \ + if (!(EXPR)) { \ + __runtime_assert_failed(EXPR, MSG); \ + } \ +} while(false) +#endif // !WAPP_PLATFORM_WINDOWS + +#define __runtime_assert_failed(EXPR, MSG) do { \ + fprintf( \ + stderr, \ + "%s:%d (In function `%s`): Assertion failed (%" PRIu32 ")\nDiagnostic: %s\n\n", \ + __FILE__, __LINE__, __func__, \ + EXPR, MSG \ + ); \ + abort(); \ } while(false) #ifdef WAPP_PLATFORM_CPP