aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2020-06-23 10:06:21 +0100
committerIain Sandoe <iain@sandoe.co.uk>2020-06-23 18:37:42 +0100
commit788b962aa00959e861b45767c5c88ec41ca30c21 (patch)
treeca5baf402ff7008dc7ed672f0c6ff906623863c0 /gcc/testsuite/gfortran.fortran-torture
parent17964eb3a054c634b743aae9d1d9414e1bf21885 (diff)
downloadgcc-788b962aa00959e861b45767c5c88ec41ca30c21.zip
gcc-788b962aa00959e861b45767c5c88ec41ca30c21.tar.gz
gcc-788b962aa00959e861b45767c5c88ec41ca30c21.tar.bz2
coroutines: Add a cleanup expression for g-r-o when needed [PR95477].
The PR reports that we fail to destroy the object initially created from the get-return-object call. Fixed by adding a cleanup when the DTOR is non-trivial. In addition, to meet the specific wording that the call to get_return_object creates the glvalue for the return, we must construct that in-place in the return object to avoid a second copy/move CTOR. gcc/cp/ChangeLog: PR c++/95477 * coroutines.cc (morph_fn_to_coro): Apply a cleanup to the get return object when the DTOR is non-trivial. gcc/testsuite/ChangeLog: PR c++/95477 * g++.dg/coroutines/pr95477.C: New test. * g++.dg/coroutines/void-gro-non-class-coro.C: New test.
Diffstat (limited to 'gcc/testsuite/gfortran.fortran-torture')
0 files changed, 0 insertions, 0 deletions