coroutines: Ensure co_await_exprs have TREE_SIDE_EFFECTS set [PR 101133].
Although it is not immediately evident from the symptoms, the PR is
caused by a variable having a DECL_INITIAL() containing a co_await.
This is not correct, since such expressions have side-effects.
We were marking the overall co_await expression correctly, but if a
consumer of that expression stripped out the underlying co_await_expr
then the latter would not be properly marked.
Fixed by marking both the underlying and any containing await expr
with TREE_SIDE_EFFECTS. Also mark type-dependent co_await expressions.
* coroutines.cc (build_co_await): Mark co_await_expr trees
with TREE_SIDE_EFFECTS, also mark any containing expression.
(finish_co_await_expr): Mark type-dependent co_await_expr
trees with TREE_SIDE_EFFECTS.