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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:221acd67ca50f8f069037e034a3250f13d75a9f5

commit r13-806-g221acd67ca50f8f069037e034a3250f13d75a9f5
Author: Jason Merrill <ja...@redhat.com>
Date:   Thu May 26 22:43:05 2022 -0400

    c++: lambda in concept [PR105652]

    We currently check satisfaction in the context of the constrained
    declaration (which may be wrong, see PR104111).  When checking C<int>
    for S<int>, we currently substitute into the lambda in the context of
    S<T> (rather than S<int>, which seems wrong if the above isn't wrong), so
    the new closure type thinks its context is S<T>, which confuses debug
    output.  For the moment, let's work around all of this by overriding the
    context of the closure.

            PR c++/105652

    gcc/cp/ChangeLog:

            * pt.cc (tsubst_lambda_expr): Don't let a namespace-scope lambda
            instantiate into a class-scope lambda.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp2a/concepts-lambda20.C: New test.

Reply via email to