A free Windows-compatible Operating System - mirrored from GitHub
Go to file
Timo Kreuzer dcc3ed4985 [PSEH2]
PSEH2 uses a special mechanism to deal with nested try blocks inside the same function. Instead of pushing a second exception registration record on the exception list, it uses an internal pointer to handle the different try-levels.
But when a function using SEH is inlined, the resulting code will push 2 registration frames on the stack. Now it happens with GCC 4.7.1 that these frames get shuffled on the stack, putting one for the inner try on a higher stack address. This is something that RtlUnwind regards as a bug and throws a STATUS_INVALID_UNWIND_TARGET exception. This was the reason for the crashing PSEH2_TEST, when compiled with GCC 4.7.1.
To fix this, I added a mechanism that will prevent functions using SEH from being inlined.

svn path=/trunk/; revision=57159
2012-08-25 22:19:02 +00:00
reactos [PSEH2] 2012-08-25 22:19:02 +00:00
rosapps [ROSAPPS] 2012-06-30 11:33:33 +00:00
rostests [GDI32_APITEST] 2012-08-24 20:25:29 +00:00
wallpaper - Add CMakeLists for wallpaper 2012-02-05 13:43:04 +00:00