diff options
author | Jason Merrill <jason@redhat.com> | 2025-03-05 08:45:34 -0500 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2025-03-05 11:58:56 -0500 |
commit | 7e576d5b64ae92432fc2749b8f66105cee8db356 (patch) | |
tree | ddebe7073e4511415278e0d6b215a044ae5b7588 /libstdc++-v3/testsuite/std/ranges | |
parent | 4d0a333ef13e2da140cd44c4941b20f48a80dc0f (diff) | |
download | gcc-7e576d5b64ae92432fc2749b8f66105cee8db356.zip gcc-7e576d5b64ae92432fc2749b8f66105cee8db356.tar.gz gcc-7e576d5b64ae92432fc2749b8f66105cee8db356.tar.bz2 |
c++: coroutines and return in registers [PR118874]
Because coroutines insert a call to the resumer between the initialization
of the return value and the actual return to the caller, we need to
duplicate the work of gimplify_return_expr for the !aggregate_value_p case.
PR c++/117364
PR c++/118874
gcc/cp/ChangeLog:
* coroutines.cc (cp_coroutine_transform::build_ramp_function): For
!aggregate_value_p return force return value into a local temp.
gcc/testsuite/ChangeLog:
* g++.dg/coroutines/torture/pr118874.C: New test.
Co-authored-by: Jakub Jelinek <jakub@redhat.com>
Diffstat (limited to 'libstdc++-v3/testsuite/std/ranges')
0 files changed, 0 insertions, 0 deletions