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.