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

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Iain D Sandoe <ia...@gcc.gnu.org>:

https://gcc.gnu.org/g:f5edc76acac7bbadd8d1b00c4cc5994b2a088542

commit r10-8005-gf5edc76acac7bbadd8d1b00c4cc5994b2a088542
Author: Iain Sandoe <i...@sandoe.co.uk>
Date:   Tue Apr 28 02:15:07 2020 +0100

    coroutines: Pass class ref to traits lookup and promise allocator
[PR94760].

    We changed the argument passed to the promise parameter preview
    to match a reference to *this.  However to be consistent with the
    other ports, we do need to match the reference transformation in
    the traits lookup and the promise allocator lookup.

    gcc/cp/ChangeLog:

    2020-04-28  Iain Sandoe  <i...@sandoe.co.uk>

            PR c++/94760
            * coroutines.cc (instantiate_coro_traits): Pass a reference to
            object type rather than a pointer type for 'this', for method
            coroutines.
            (struct param_info): Add a field to hold that the parm is a lambda
            closure pointer.
            (morph_fn_to_coro): Check for lambda closure pointers in the
            args.  Use a reference to *this when building the args list for the
            promise allocator lookup.

    gcc/testsuite/ChangeLog:

    2020-04-28  Iain Sandoe  <i...@sandoe.co.uk>

            PR c++/94760
            * g++.dg/coroutines/pr94760-mismatched-traits-and-promise-prev.C:
            New test.

Reply via email to