[PATCH] msvcrt: Handle synchronous flag for x64 C++ exceptions

Piotr Caban piotr.caban at gmail.com
Fri Apr 21 08:33:01 CDT 2017


Hi,

On 04/20/17 16:42, Daniel Lehman wrote:
> +    if (descr->magic >= CXX_FRAME_MAGIC_VC8 &&
> +        (descr->flags & FUNC_DESCR_SYNCHRONOUS) &&
> +        (rec->ExceptionCode != CXX_EXCEPTION && rec->ExceptionCode != STATUS_UNWIND_CONSOLIDATE))
> +        return ExceptionContinueSearch;  /* handle only c++ exceptions */
I think the condition for STATUS_UNWIND_CONSOLIDATE should also check 
number of parameters and 
ExceptionInformation[0]==(ULONG_PTR)call_catch_block like it's done 
during unwinding.

Also the code breaks unwinding for longjump when
FUNC_DESCR_SYNCHRONOUS flag is set.

Thanks,
Piotr



More information about the wine-devel mailing list