mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-08 14:00:43 +00:00
32 lines
855 B
C
32 lines
855 B
C
|
// GCC does not support Windows' Structured Exception Handling. :-(
|
||
|
// So I have to fake it using inline assembly
|
||
|
|
||
|
#ifdef __GNUC__
|
||
|
|
||
|
#define __try try
|
||
|
#define __except(a) catch(...)
|
||
|
|
||
|
#define EH_NONCONTINUABLE 0x01
|
||
|
#define EH_UNWINDING 0x02
|
||
|
#define EH_EXIT_UNWIND 0x04
|
||
|
#define EH_STACK_INVALID 0x08
|
||
|
#define EH_NESTED_CALL 0x10
|
||
|
|
||
|
typedef enum {
|
||
|
ExceptionContinueExecution,
|
||
|
ExceptionContinueSearch,
|
||
|
ExceptionNestedException,
|
||
|
ExceptionCollidedUnwind
|
||
|
} EXCEPTION_DISPOSITION;
|
||
|
|
||
|
typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER)
|
||
|
(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
|
||
|
|
||
|
typedef struct _EXCEPTION_REGISTRATION
|
||
|
{
|
||
|
struct _EXCEPTION_REGISTRATION* Prev;
|
||
|
PEXCEPTION_HANDLER Handler;
|
||
|
} EXCEPTION_REGISTRATION, *PEXCEPTION_REGISTRATION;
|
||
|
|
||
|
#endif
|