diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2020-06-30 07:26:51 +0100 |
---|---|---|
committer | Iain Sandoe <iain@sandoe.co.uk> | 2020-06-30 08:22:05 +0100 |
commit | 9252a208f485eed2757d601657facfa0aee6cd21 (patch) | |
tree | 88960f669da6a9ea2fe21c4af5a0bb380a155c09 /contrib/gcc-changelog/git_commit.py | |
parent | 3b7272a2f7333905a4cd2caedff27c1fbec95f09 (diff) | |
download | gcc-9252a208f485eed2757d601657facfa0aee6cd21.zip gcc-9252a208f485eed2757d601657facfa0aee6cd21.tar.gz gcc-9252a208f485eed2757d601657facfa0aee6cd21.tar.bz2 |
coroutines: Collect the function body rewrite code.
The standard describes a rewrite of the body of the user-authored
function (which wraps it in a try-catch block and provides the
initial and final suspend expressions). The exact arrangement of
this was still in flux right up until the DIS and as a consequence
was a bit of a moving target.
The net result was a fragmented implementation of the parts of
the rewrite which is now impeding progress in fixing other issues.
This patch collates the rewrite action into a single function and
carries this out earlier.
gcc/cp/ChangeLog:
* coroutines.cc (expand_one_await_expression): Remove
code dealing with initial suspend.
(build_actor_fn): Remove code special-casing initial
and final suspend. Handle the final suspend and marking
of the coroutine as done.
(coro_rewrite_function_body): New.
(bind_expr_find_in_subtree): Remove.
(coro_body_contains_bind_expr_p): Remove.
(morph_fn_to_coro): Split the rewrite of the original
function into coro_rewrite_function_body and call it.
Diffstat (limited to 'contrib/gcc-changelog/git_commit.py')
0 files changed, 0 insertions, 0 deletions