mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-01 12:23:29 +00:00
dcc3ed498549e8680e3eb20006beeb73e15038d3
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
Description
A free Windows-compatible Operating System
528 MiB
Languages
C
86.9%
C++
10.7%
Python
0.7%
Assembly
0.5%
CMake
0.5%
Other
0.4%