r273972 - in /branches/c++-coroutines: ChangeLo...

iains@gcc.gnu.org iains@gcc.gnu.org
Thu Aug 1 11:58:00 GMT 2019


Author: iains
Date: Thu Aug  1 11:58:12 2019
New Revision: 273972

URL: https://gcc.gnu.org/viewcvs?rev=273972&root=gcc&view=rev
Log:
c++-coroutines - Handle alternate await_suspend return types.

Avoid creating a frame slot for a potential returned coroutine handle if the
await_suspend method is void or boolean.  Cache the return type for later use.


2019-08-01  Iain Sandoe  <iain@sandoe.co.uk>

	gcc/cp/
	* coroutines.cc (struct suspend_point_info): Add space for the
	await_suspend method type.  Rename the handle field.
	(transform_await_expr): Rename the handle field.
	(register_await_info): Cache the suspend method return type.
	(get_await_suspend_return_type): New.
	(register_awaits): Handle caching the await_suspend return type.
	(morph_fn_to_coro): Ensure that we have the right suspend types
	for initial and final suspends.


Modified:
    branches/c++-coroutines/ChangeLog.coroutines
    branches/c++-coroutines/gcc/cp/coroutines.cc



More information about the Gcc-cvs mailing list