mirror of
https://github.com/reactos/reactos.git
synced 2024-10-03 07:53:49 +00:00
[PSEH3]
Remove do { } while (0) constructs from PSEH3 macros, so that a break from within a try block does what it is supposed to do. svn path=/trunk/; revision=70316
This commit is contained in:
parent
fd2a84e434
commit
ad89dba36e
|
@ -339,7 +339,7 @@ _Pragma("GCC diagnostic pop") \
|
||||||
#define _SEH3_TRY \
|
#define _SEH3_TRY \
|
||||||
_SEH3$_PreventInlining(); \
|
_SEH3$_PreventInlining(); \
|
||||||
/* Enter the outer scope */ \
|
/* Enter the outer scope */ \
|
||||||
do { \
|
if (1) { \
|
||||||
/* Declare local labels */ \
|
/* Declare local labels */ \
|
||||||
__label__ _SEH3$_l_BeforeTry; \
|
__label__ _SEH3$_l_BeforeTry; \
|
||||||
__label__ _SEH3$_l_DoTry; \
|
__label__ _SEH3$_l_DoTry; \
|
||||||
|
@ -374,12 +374,11 @@ _Pragma("GCC diagnostic pop") \
|
||||||
/* Silence warning */ goto _SEH3$_l_AfterTry; \
|
/* Silence warning */ goto _SEH3$_l_AfterTry; \
|
||||||
\
|
\
|
||||||
_SEH3$_l_DoTry: \
|
_SEH3$_l_DoTry: \
|
||||||
do
|
if (1)
|
||||||
|
|
||||||
|
|
||||||
#define _SEH3_EXCEPT(...) \
|
#define _SEH3_EXCEPT(...) \
|
||||||
/* End the try block */ \
|
/* End of the try block */ \
|
||||||
while (0); \
|
|
||||||
_SEH3$_l_AfterTry: (void)0; \
|
_SEH3$_l_AfterTry: (void)0; \
|
||||||
goto _SEH3$_l_EndTry; \
|
goto _SEH3$_l_EndTry; \
|
||||||
\
|
\
|
||||||
|
@ -422,12 +421,11 @@ _Pragma("GCC diagnostic ignored \"-Wdeclaration-after-statement\"") \
|
||||||
{ \
|
{ \
|
||||||
/* Prevent this block from being optimized away */ \
|
/* Prevent this block from being optimized away */ \
|
||||||
asm volatile ("#\n"); \
|
asm volatile ("#\n"); \
|
||||||
do
|
if (1)
|
||||||
|
|
||||||
|
|
||||||
#define _SEH3_FINALLY \
|
#define _SEH3_FINALLY \
|
||||||
/* End the try block */ \
|
/* End of the try block */ \
|
||||||
while (0); \
|
|
||||||
_SEH3$_l_AfterTry: (void)0; \
|
_SEH3$_l_AfterTry: (void)0; \
|
||||||
/* Set ExceptionPointers to 0, this is used by _abnormal_termination() */ \
|
/* Set ExceptionPointers to 0, this is used by _abnormal_termination() */ \
|
||||||
_SEH3$_TrylevelFrame.ExceptionPointers = 0; \
|
_SEH3$_TrylevelFrame.ExceptionPointers = 0; \
|
||||||
|
@ -463,7 +461,6 @@ _Pragma("GCC diagnostic ignored \"-Wdeclaration-after-statement\"") \
|
||||||
|
|
||||||
|
|
||||||
#define _SEH3_END \
|
#define _SEH3_END \
|
||||||
while (0); \
|
|
||||||
}; \
|
}; \
|
||||||
goto _SEH3$_l_EndTry; \
|
goto _SEH3$_l_EndTry; \
|
||||||
\
|
\
|
||||||
|
@ -480,7 +477,7 @@ _Pragma("GCC diagnostic ignored \"-Wdeclaration-after-statement\"") \
|
||||||
_Pragma("GCC diagnostic pop") \
|
_Pragma("GCC diagnostic pop") \
|
||||||
\
|
\
|
||||||
/* Close the outer scope */ \
|
/* Close the outer scope */ \
|
||||||
} while (0);
|
}
|
||||||
|
|
||||||
#define _SEH3_LEAVE goto _SEH3$_l_AfterTry
|
#define _SEH3_LEAVE goto _SEH3$_l_AfterTry
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue