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:
Timo Kreuzer 2012-12-30 18:01:34 +00:00
parent d855db8ef1
commit 79679fb362

View file

@ -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 */ \