[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