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

iains@gcc.gnu.org iains@gcc.gnu.org
Sat Jun 29 15:41:00 GMT 2019


Author: iains
Date: Sat Jun 29 15:41:15 2019
New Revision: 272827

URL: https://gcc.gnu.org/viewcvs?rev=272827&root=gcc&view=rev
Log:
c++-coroutines - Handle 'noexcept' exception wrappers.

"noexcept" actually prepends some EH information to the function body, and
therefore does not behave as if "-fno-exceptions" had been specified.

We are now going to detect and apply the 'noexcept' to the ramp function (it
remains to check what ought to be done with the resume and destroy functions).

This means that we no longer ICE for "noexcept" + "-fexceptions" and therefore
we can drop the "-fno-exceptions" from the testsuite drivers.

2019-06-29  Iain Sandoe  <iain@sandoe.co.uk>
 
	gcc/cp/
	* coroutines.cc (morph_fn_to_coro): If the body is empty or an error
	mark, then we can't determine any more so punt.  If the body is marked
	noexcept, remember this and pass on to the ramp.  Some small comment
	changes are included.
	* decl.c (finish_function): Handle exception blocks from the ramp.

	gcc/testsuite/
	* g++.dg/coroutines/coroutines.exp:
	* g++.dg/coroutines/torture/coro-torture.exp:


Modified:
    branches/c++-coroutines/ChangeLog.coroutines
    branches/c++-coroutines/gcc/cp/coroutines.cc
    branches/c++-coroutines/gcc/cp/decl.c
    branches/c++-coroutines/gcc/testsuite/g++.dg/coroutines/coroutines.exp
    branches/c++-coroutines/gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp



More information about the Gcc-cvs mailing list