When break/continue trampolines through nested finally blocks, we need to restore the unwind handler to the level that was active before each finally context was pushed. Without this, trampoline blocks created for inner finally dispatch incorrectly inherited the innermost exception handler, causing exception handler range mismatches with C++. Store the current_unwind_handler in each FinallyContext at push time, and restore it in emit_trampoline_through_finally when popping through. |
||
|---|---|---|
| .. | ||
| src | ||
| build.rs | ||
| Cargo.toml | ||