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.