Skip to content

Commit

Permalink
MinGW: Add exception-handling façades to libobjc2
Browse files Browse the repository at this point in the history
  • Loading branch information
qmfrederik committed Feb 21, 2024
1 parent 6bd3db5 commit 02f62ed
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions objcxx_eh_mingw.cc
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include <atomic>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include "dwarf_eh.h"
#include "objcxx_eh_private.h"
#include "objcxx_eh.h"
Expand Down Expand Up @@ -96,3 +97,45 @@ OBJC_PUBLIC extern objc_uncaught_exception_handler objc_setUncaughtExceptionHand
{
return __atomic_exchange_n(&_objc_unexpected_exception, handler, __ATOMIC_SEQ_CST);
}

extern "C" void* __cxa_begin_catch(void *object);

extern "C"
OBJC_PUBLIC
void* objc_begin_catch(void* object)
{
return __cxa_begin_catch(object);
}

extern "C" void __cxa_end_catch();

extern "C"
OBJC_PUBLIC
void objc_end_catch()
{
__cxa_end_catch();
}

extern "C" void __cxa_rethrow();

extern "C"
OBJC_PUBLIC
void objc_exception_rethrow()
{
__cxa_rethrow();
}

extern "C" EXCEPTION_DISPOSITION __gxx_personality_seh0(PEXCEPTION_RECORD ms_exc,
void *this_frame,
PCONTEXT ms_orig_context,
PDISPATCHER_CONTEXT ms_disp);

extern "C"
OBJC_PUBLIC
EXCEPTION_DISPOSITION __gnu_objc_personality_seh0(PEXCEPTION_RECORD ms_exc,
void *this_frame,
PCONTEXT ms_orig_context,
PDISPATCHER_CONTEXT ms_disp)
{
return __gxx_personality_seh0(ms_exc, this_frame, ms_orig_context, ms_disp);
}

0 comments on commit 02f62ed

Please sign in to comment.