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 Actions Comandeering 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?