https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90172
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This used to be accepted before r251433, which started rejecting it. Before r257018, the diagnostics has been: pr90172.C: In instantiation of ‘fooV(Ts ...) [with Ts = {const char*, int, double, char, float, short int, unsigned int}]::<lambda(auto:1 ...)> [with auto:1 = {fooV(Ts ...) [with Ts = {const char*, int, double, char, float, short int, unsigned int}]::<lambda(auto:1 ...)>, const char*, int, double, char, float, short int, unsigned int}]’: pr90172.C:8:13: required from ‘int fooV(Ts ...) [with Ts = {const char*, int, double, char, float, short int, unsigned int}]’ pr90172.C:13:65: required from here pr90172.C:3:10: error: use ‘...’ to expand argument pack auto M = [](decltype(a) ... b) -> void { ^ pr90172.C:5:12: error: unable to deduce lambda return type from ‘M’ return M; ^ but in r257018 and onwards: pr90172.C: In instantiation of ‘int fooV(Ts ...) [with Ts = {const char*, int, double, char, float, short int, unsigned int}]’: pr90172.C:13:65: required from here pr90172.C:3:10: error: expansion pattern ‘decltype (#‘nontype_argument_pack’ not supported by dump_expr#<expression error>)’ contains no argument packs auto M = [](decltype(a) ... b) -> void { ^ and finally starting with r268377 we also ICE during error recovery.