This patch adds passing a coroutine_handle object to await_suspend calls.
It builds the coroutine_handle using coroutine_handle<PromiseType>::from_address(__builtin_coro_frame()).
Paths
| Differential D26316
[coroutines] Build and pass coroutine_handle to await_suspend. ClosedPublic Authored by GorNishanov on Nov 4 2016, 4:55 PM.
Details
Summary This patch adds passing a coroutine_handle object to await_suspend calls. It builds the coroutine_handle using coroutine_handle<PromiseType>::from_address(__builtin_coro_frame()).
Diff Detail Event TimelineGorNishanov edited edge metadata. Comment ActionsComandeering this patch. Comment Actions Per's @rsmith feedback in Kona
Comment Actions
Comment Actions This LGTM, but I don't know enough Clang to be 100% on it. Perhaps somebody else could give it a quick second look?
Comment Actions On second thought if @rsmith already reviewed most of this offline then I feel comfortable giving it the thumbs up. This revision is now accepted and ready to land.Mar 8 2017, 1:41 PM Comment Actions
Preparing to land
Revision Contents
Diff 91119 include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaCoroutine.cpp
lib/Sema/SemaExprMember.cpp
test/CodeGenCoroutines/coro-alloc.cpp
test/CodeGenCoroutines/coro-return.cpp
test/SemaCXX/coreturn.cpp
test/SemaCXX/coroutines.cpp
|
Should this diagnostic be renamed since it's general to both coroutine_traits and coroutine_handle?