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

--- 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:e89055f90cff9fb6f565b9374e1ab74f805682fb

commit r11-8103-ge89055f90cff9fb6f565b9374e1ab74f805682fb
Author: Jason Merrill <ja...@redhat.com>
Date:   Fri Apr 9 16:43:50 2021 -0400

    c++: pack in base-specifier in lambda [PR100006]

    Normally cp_parser_base_clause prevents unexpanded packs, but in a lambda
    check_for_bare_parameter_packs allows it.  Then we weren't finding the
    pack when scanning the lambda body.

    This doesn't fix a valid variant like

      template <class... Ts> void sink (Ts&&...);
      template <class... Ts>
      void f() {
        sink ([] { struct S : Ts { }; }...);
      }
      int main() {
        f<int>();
      }

    but that's a much bigger project.

    gcc/cp/ChangeLog:

            PR c++/100006
            * pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases.

    gcc/testsuite/ChangeLog:

            PR c++/100006
            * g++.dg/cpp0x/lambda/lambda-variadic13.C: New test.

Reply via email to