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

iains@gcc.gnu.org iains@gcc.gnu.org
Sun Aug 11 12:56:00 GMT 2019


Author: iains
Date: Sun Aug 11 12:56:00 2019
New Revision: 274267

URL: https://gcc.gnu.org/viewcvs?rev=274267&root=gcc&view=rev
Log:
c++-coroutines - Initial handling for local objects with CTOR/DTOR.

After some experimentation with alternate representations at the
tree level, this implementation 'hides' the scope-exiting suspend
returns (as an internal function).  This is preserved until the
EH/cleanup paths are expanded, at which point we replace with a
regular goto.

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

	gcc/
	* coroutine-passes.c (lower_coro_builtin): Lower IFN_CO_SUSPN.
	* internal-fn.c (expand_CO_SUSPN): New.
	* internal-fn.def (CO_SUSPN): New.

	gcc/cp/ChangeLog:
	* coroutines.cc (co_await_expander): Encode the scope exiting
	return as an internal function.


Modified:
    branches/c++-coroutines/ChangeLog.coroutines
    branches/c++-coroutines/gcc/coroutine-passes.c
    branches/c++-coroutines/gcc/cp/coroutines.cc
    branches/c++-coroutines/gcc/internal-fn.c
    branches/c++-coroutines/gcc/internal-fn.def



More information about the Gcc-cvs mailing list