mirror of
https://github.com/reactos/reactos.git
synced 2024-10-19 15:41:31 +00:00
[PSEH3]
Apply the same mechanism to prevent inlining SEH using functions that was already applied to PSEH2. svn path=/trunk/; revision=58059
This commit is contained in:
parent
d855db8ef1
commit
79679fb362
|
@ -45,6 +45,9 @@ typedef struct _SEH3$_REGISTRATION_FRAME
|
|||
|
||||
} SEH3$_REGISTRATION_FRAME ,*PSEH3$_REGISTRATION_FRAME;
|
||||
|
||||
/* Prevent gcc from inlining functions that use SEH. */
|
||||
static inline __attribute__((always_inline)) __attribute__((returns_twice)) void _SEH3$_PreventInlining() {}
|
||||
|
||||
extern inline __attribute__((always_inline,gnu_inline))
|
||||
void _SEH3$_UnregisterFrame(volatile SEH3$_REGISTRATION_FRAME *RegistrationFrame)
|
||||
{
|
||||
|
@ -174,6 +177,7 @@ void * __cdecl __attribute__((error("Can only be used inside an exception filter
|
|||
|
||||
|
||||
#define _SEH3_TRY \
|
||||
_SEH3$_PreventInlining(); \
|
||||
/* Enter the outer scope */ \
|
||||
do { \
|
||||
/* Declare local labels */ \
|
||||
|
|
Loading…
Reference in a new issue