Author: tkreuzer Date: Sun Dec 30 18:01:34 2012 New Revision: 58059
URL: http://svn.reactos.org/svn/reactos?rev=58059&view=rev Log: [PSEH3] Apply the same mechanism to prevent inlining SEH using functions that was already applied to PSEH2.
Modified: trunk/reactos/include/reactos/libs/pseh/pseh3.h
Modified: trunk/reactos/include/reactos/libs/pseh/pseh3.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/libs/pseh/p... ============================================================================== --- trunk/reactos/include/reactos/libs/pseh/pseh3.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/libs/pseh/pseh3.h [iso-8859-1] Sun Dec 30 18:01:34 2012 @@ -44,6 +44,9 @@ unsigned long Ebp;
} 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 @@
#define _SEH3_TRY \ + _SEH3$_PreventInlining(); \ /* Enter the outer scope */ \ do { \ /* Declare local labels */ \