> this is the breakage of SEH on 64-bit Windows introduced by defaulting to > the -freorder-blocks-and-partition optimization. It is fixed by: > 1. Defining ASM_DECLARE_COLD_FUNCTION_NAME & > ASM_DECLARE_COLD_FUNCTION_SIZE, 2. Emitting a nop in one more case for SEH, > 3. Splitting the exception table into hot and cold parts; that's necessary > because the LSDA is referenced directly in the SEH scheme. > > Tested on x86-64/Windows, x86-64/Linux and IA-64/Linux, OK for mainline?
Also tested on x86/Windows to verify that it doesn't break anything. Can anyone approve the middle-end bits? The rest effectively affects only the -freorder-blocks-and-partition optimization on x86-64/Windows, which has never worked in C++ or Ada, so I don't think that it can do any harm... -- Eric Botcazou