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/…
==============================================================================
--- 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 */ \