diff --git a/src/alloc.c b/src/alloc.c index 0fed5e75..010c435b 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -465,7 +465,11 @@ static bool mi_try_new_handler(bool nothrow) { _mi_error_message(ENOMEM, "out of memory in 'new'"); #if defined(_CPPUNWIND) || defined(__cpp_exceptions) // exceptions are not always enabled if (!nothrow) { - throw std::bad_alloc(); + #if defined(__GNUC__) && !defined(__EXCEPTIONS) + abort(); + #else + throw std::bad_alloc(); + #endif } #else MI_UNUSED(nothrow);