coroutines: Implicitly movable objects should use move CTORs for co_return.
This is a case where the standard contains conflicting information.
after discussion between implementators, the accepted intent is of
[class.copy.elision]. This amends the handling of co_return statements
to follow that.
Backport
5ef067eb14d40337507077a8a1265a04daa8ebc1 and
f898793b4545483adaf62c5efbc78cee518884e6
gcc/cp/ChangeLog:
* coroutines.cc (finish_co_return_stmt): Implement rules
from [class.copy.elision] /3.
gcc/testsuite/ChangeLog:
* g++.dg/coroutines/co-return-syntax-10-movable.C: New test.