In https://reviews.llvm.org/D82029 we added the conformance check that the expression co_await promise.final_suspend() should not potentially throw.
As part of this expression, in cases when the await_suspend() method of the final suspend awaiter returns a handle, builtin_coro_resume could be called on the handle to immediately resume that coroutine.
builtin_coro_resume is not declared with noexcept and it shouldn't. We need to special check this case here.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
LGTM
clang/lib/Sema/SemaCoroutine.cpp | ||
---|---|---|
621 | ... it does not throw _into_ the coroutine that just suspended, but rather throws back out from whoever called coroutine_handle::resume(). |
... it does not throw _into_ the coroutine that just suspended, but rather throws back out from whoever called coroutine_handle::resume().