| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| |
| #include <excpt.h> |
| |
| #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) |
| EXCEPTION_DISPOSITION __cdecl |
| __C_specific_handler(struct _EXCEPTION_RECORD *_ExceptionRecord, |
| void *_EstablisherFrame, |
| struct _CONTEXT *_ContextRecord, |
| struct _DISPATCHER_CONTEXT *_DispatcherContext) |
| { |
| (void)_ExceptionRecord; |
| (void)_EstablisherFrame; |
| (void)_ContextRecord; |
| (void)_DispatcherContext; |
| // TODO A more comprehensive implementation. Normally this is only used |
| // by the toplevel SEH handler for uncaught exceptions, for calling |
| // signal handlers. If signal handling isn't used, this no-op implementation |
| // should be ok. Wine does contain a supposedly correct implementation of |
| // this for x86_64 at least. |
| return ExceptionContinueSearch; |
| } |
| |
| EXCEPTION_DISPOSITION |
| (__cdecl *__MINGW_IMP_SYMBOL(__C_specific_handler))( |
| struct _EXCEPTION_RECORD *_ExceptionRecord, |
| void *_EstablisherFrame, |
| struct _CONTEXT *_ContextRecord, |
| struct _DISPATCHER_CONTEXT *_DispatcherContext) = __C_specific_handler; |
| #endif |