https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120453

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|                            |https://gcc.gnu.org/piperma
                   |                            |il/gcc-patches/2025-May/685
                   |                            |037.html

--- Comment #14 from Iain Sandoe <iains at gcc dot gnu.org> ---
patch posted.


Note that there is some implementation divergence in the handling of the
reduced test-case here. https://godbolt.org/z/3zrexzEas ( -DHAS_MOVE_CTOR to
add that back )

 * clang-20 accepts the coroutine code.

 * If we add the non-coroutine simulation of the ramp, then clang-20 also
complains - but with a different diagnostic:

"<source>:97:10: error: call to implicitly-deleted copy constructor of
'LazyTask<int>'
   97 |   return Gro;
      |          ^~~
<source>:84:41: note: copy constructor of 'LazyTask<int>' is implicitly deleted
because base class 'detail::TaskBase<int, LazyTask, int>' has a deleted copy
constructor
   84 | template <typename T> struct LazyTask : detail::TaskBase<int, LazyTask,
int> {
      |                                         ^
<source>:51:8: note: copy constructor is implicitly deleted because
'TaskBase<int, QCoro::LazyTask, int>' has a user-declared move assignment
operator
   51 |   void operator=(TaskBase &&);
"
(rather than complaining about a default that would be ill-formed.)

Reply via email to