Right now, unwinding through extern "C"
is nominally UB but in practice unwinds through C frames as if it were longjmp()
, and C++ frames as if it were an exception. If you add #![feature(c_unwind)]
, then extern "C"
will add an abort-on-unwind shim to the function. The plan is to make the latter behavior the default once c_unwind
is stabilized, but that may take many months yet. There have been some soft promises made about the former behavior on GitHub and on Zulip, but I haven't been able to track down my old list of links.
3 Likes