[Bug c++/108526] [13 Regression] ICE in start_preparsed_function with static on generic lambdas inside a template

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jan 24 22:12:04 GMT 2023


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

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

https://gcc.gnu.org/g:39ade88fa1632c659c5c4ed065fa2b62d16a8670

commit r13-5334-g39ade88fa1632c659c5c4ed065fa2b62d16a8670
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Jan 24 15:29:35 2023 -0500

    c++: static lambda in template [PR108526]

    tsubst_lambda_expr uses build_memfn_type to build a METHOD_TYPE for the new
    lamba op().  This is not what we want for a C++23 static op(), but since we
    also use that METHOD_TYPE to communicate the closure type down to
    tsubst_function_decl, let's wait and turn it back at that point.

            PR c++/108526

    gcc/cp/ChangeLog:

            * pt.cc (tsubst_function_decl): Handle static lambda.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp23/static-operator-call5.C: New test.


More information about the Gcc-bugs mailing list