forked from OSchip/llvm-project
0f33300609
Summary: If await_suspend returns a coroutine_handle, as in the example below: ``` coroutine_handle<> await_suspend(coroutine_handle<> h) { coro.promise().waiter = h; return coro; } ``` suspensionExpression processing will resume the coroutine pointed at by that handle. Related LLVM change rL311751 makes resume calls of this kind `musttail` at any optimization level. This enables unlimited symmetric control transfer from coroutine to coroutine without blowing up the stack. Reviewers: GorNishanov Reviewed By: GorNishanov Subscribers: rsmith, EricWF, cfe-commits Differential Revision: https://reviews.llvm.org/D37131 llvm-svn: 311762 |
||
---|---|---|
.. | ||
Inputs | ||
coro-alloc.cpp | ||
coro-await-domination.cpp | ||
coro-await.cpp | ||
coro-builtins-err.c | ||
coro-builtins.c | ||
coro-cleanup.cpp | ||
coro-eh-cleanup.cpp | ||
coro-gro.cpp | ||
coro-lambda.cpp | ||
coro-params.cpp | ||
coro-promise-dtor.cpp | ||
coro-ret-void.cpp | ||
coro-return.cpp | ||
coro-unhandled-exception.cpp | ||
microsoft-abi-operator-coawait.cpp |