Hi Daniel,
On 9/30/20 6:49 AM, Daniel Lehman wrote:
- ret = cxx_frame_handler4(rec, frame, context, dispatch, &descr, trylevel);
- if (descr.header & FUNC_DESCR_NO_EXCEPT &&
!(rec->ExceptionFlags & (EH_UNWINDING|EH_EXIT_UNWIND)) &&
ret == ExceptionContinueSearch)
- {
ERR("noexcept function propagating exception\n");
terminate();
- }
This will not work for nested exceptions. You will need to move the handling to cxx_frame_handler4 helper.
Here's an example of non-working code (in noexcept function): try { try { throw 1; } catch (int e) { throw; } } catch (...) { }
Thanks, Piotr