https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117364
--- Comment #8 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Jason Merrill from comment #7)
> Fixed for GCC 15 so far. The ramp generation is completely different in
> earlier versions, the code that would need to change in 14 and below is in
> morph_fn_to_coro:
>
> /* [dcl.fct.def.coroutine] / 7
>
> The expression promise.get_return_object() is used to initialize the
>
> glvalue result or... (see below)
>
> Construct the return result directly. */
> if (type_build_ctor_call (gro_type))
> {
> vec<tree, va_gc> *arg = make_tree_vector_single (get_ro);
> r = build_special_member_call (DECL_RESULT (orig),
> complete_ctor_identifier,
> &arg, gro_type, LOOKUP_NORMAL,
> tf_warning_or_error);
> release_tree_vector (arg);
> }
> else
> r = cp_build_init_expr (fn_start, DECL_RESULT (orig), get_ro);
we might have pending back-ports for the fix that applies conversions correctly
at this point (which would further adjust this). We need to review the list -
(where a PR is assigned to me or Arsen and marked as WAITING, that implies we
intend(ed) to back port it).