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

            Bug ID: 106024
           Summary: ICE on missing template keyword in template method
                    call in pack expansion
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kacper.slominski72 at gmail dot com
  Target Milestone: ---

Created attachment 53162
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53162&action=edit
-freport-bug output

The following code, when compiled with -std=c++20, causes an ICE. Attached is
the file produced by -freport-bug.

auto foo() {
        return [&] <auto...args> () {
                return [] (auto...) {} (
                        [] <auto T> (auto...) {
                                return 1;
                        }.operator()<args>(args...)...
                );
        }.operator()<1, 2, 3>();
}

I'm tempted to say this is ICE-on-invalid since adding the missing "template"
keyword before "operator()" gets rid of it, but I'm not 100% sure.

Reply via email to