https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85813
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #4) > (In reply to Mathias Stearn from comment #3) > > My assumption was that if E(...) throws and it can't be caught, it should be > > treated as any other case when an -fno-exceptions TU calls a throwing > > function. In this case that would mean calling terminate() due to the > > noexcept, which seems better than returning a null exception_ptr. > > Simply returning an empty exception_ptr is what happened before the PR 64241 > change, so what we do now retains that behaviour. That might be the main > reason for it. Oops, wrong PR number, I meant PR 68297. Before the PR 64241 change we just returned undefined garbage!