aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/go-gcc.cc
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2022-02-08 08:46:13 -0500
committerPatrick Palka <ppalka@redhat.com>2022-02-08 08:46:13 -0500
commit34ba3d9a2bf72742b1c150a2dd17d10e3e3f0964 (patch)
tree96d3de214b499a8a4bcfab81c3b7031a429884f1 /gcc/go/go-gcc.cc
parent61b783995fac5355827ada1f8544052119a23606 (diff)
downloadgcc-34ba3d9a2bf72742b1c150a2dd17d10e3e3f0964.zip
gcc-34ba3d9a2bf72742b1c150a2dd17d10e3e3f0964.tar.gz
gcc-34ba3d9a2bf72742b1c150a2dd17d10e3e3f0964.tar.bz2
c++: constrained auto in lambda using outer tparms [PR103706]
Here we're crashing during satisfaction of the lambda's placeholder type constraints because the constraints depend on the template arguments from the enclosing scope, which aren't part of the lambda's DECL_TI_ARGS. This patch fixes this by making do_auto_deduction consider the "regenerating" template arguments of a lambda for satisfaction, mirroring what's done in satisfy_declaration_constraints. PR c++/103706 gcc/cp/ChangeLog: * constraint.cc (satisfy_declaration_constraints): Use lambda_regenerating_args instead. * cp-tree.h (lambda_regenerating_args): Declare. * pt.cc (lambda_regenerating_args): Define, split out from satisfy_declaration_constraints. (do_auto_deduction): Use lambda_regenerating_args to obtain the full set of outer template arguments for satisfaction when inside a lambda. gcc/testsuite/ChangeLog: * g++.dg/cpp2a/concepts-lambda18.C: New test.
Diffstat (limited to 'gcc/go/go-gcc.cc')
0 files changed, 0 insertions, 0 deletions