diff options
author | Jason Merrill <jason@redhat.com> | 2025-01-29 05:15:00 -0500 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2025-04-04 15:40:08 -0400 |
commit | 25992d8daff60726a247ec7850d540aed5335639 (patch) | |
tree | af59650b5a8b270d61e512f5efe618402900b94c /libjava/classpath/lib/java/lang/Appendable.class | |
parent | 2a36d22ab52d6ffce9a1fcaf7aca83336679e111 (diff) | |
download | gcc-master.zip gcc-master.tar.gz gcc-master.tar.bz2 |
Since r10-7441 we set processing_template_decl in a requires-expression so
that we can use tsubst_expr to evaluate the requirements, but that confuses
lambdas terribly; begin_lambda_type silently returns error_mark_node and we
continue into other failures. This patch clears processing_template_decl
again while we're defining the closure and op() function, so it only remains
set while parsing the introducer (i.e. any init-captures) and building the
resulting object. This properly avoids trying to create another lambda in
tsubst_lambda_expr.
PR c++/99546
PR c++/113925
PR c++/106976
PR c++/109961
PR c++/117336
gcc/cp/ChangeLog:
* lambda.cc (build_lambda_object): Handle fake
requires-expr processing_template_decl.
* parser.cc (cp_parser_lambda_expression): Likewise.
gcc/testsuite/ChangeLog:
* g++.dg/cpp2a/lambda-requires2.C: New test.
* g++.dg/cpp2a/lambda-requires3.C: New test.
* g++.dg/cpp2a/lambda-requires4.C: New test.
* g++.dg/cpp2a/lambda-requires5.C: New test.
Diffstat (limited to 'libjava/classpath/lib/java/lang/Appendable.class')
0 files changed, 0 insertions, 0 deletions