c++, coroutines: Remove use of coroutine handle in the frame.

We have been keeping a copy of coroutine_handle<promise> in the state
frame, as it was expected to be efficient to use this to initialize the
argument to await_suspend.  This does not turn out to be the case and
intializing the value is obstructive to CGW2563 fixes.  This removes
the use.

gcc/cp/ChangeLog:

	* coroutines.cc (struct coroutine_info): Update comments.
	(struct coro_aw_data): Remove self_handle and add in
	information to create the handle in lowering.
	(expand_one_await_expression): Build a temporary coroutine
	handle.
	(build_actor_fn): Remove reference to the frame copy of the
	coroutine handle.
	(cp_coroutine_transform::wrap_original_function_body): Remove
	reference to the frame copy of the coroutine handle.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
(cherry picked from commit 8a3acd8cf449636079acb3d1dfcbcabb074b75af)
1 file changed