]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++, coroutines: Allow NVRO in more cases for ramp functions.
authorIain Sandoe <iain@sandoe.co.uk>
Sat, 10 May 2025 16:22:55 +0000 (17:22 +0100)
committerIain Sandoe <iain@sandoe.co.uk>
Fri, 16 May 2025 13:47:52 +0000 (14:47 +0100)
commitd87caa9d3595ca845c9282cef8b0c9a656d8def0
tree320ccd7e233699df693b719158fd17cb935c70d2
parent689bc394efe9e042acb37799deec6568c0f63a45
c++, coroutines: Allow NVRO in more cases for ramp functions.

The constraints of the c++ coroutines specification require the ramp
to construct a return object early in the function.  This will be returned
at some later time.  This is implemented as NVRO but requires that copying
be well-formed even though it will be elided.  Special-case ramp functions
to allow this.

gcc/cp/ChangeLog:

* typeck.cc (check_return_expr): Suppress conversions for NVRO
in coroutine ramp functions.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
gcc/cp/typeck.cc