https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103382
--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #10) > (In reply to Richard Biener from comment #9) > > For the record, compiling with affected GCC but link editing against fixed > > libstdc++ makes the testcase no longer terminate but at the expense of not > > unlocking the mutex. > > Is that because the lambda function doesn't contain a finally block to call > the ~unique_lock destructor when the unwind exception happens? Yes. Making the lambda nothrow() would make us run into a MUST_NOT_THROW handler, that might be another failure mode.