[Bug c++/60065] [c++1y] ICE with auto parameter pack
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60065 Volker Reichelt reichelt at gcc dot gnu.org changed: What|Removed |Added Keywords||ice-on-valid-code Status|UNCONFIRMED |RESOLVED Known to work||4.9.0 Resolution|--- |FIXED Target Milestone|--- |4.9.0 Known to fail|4.9.0 | --- Comment #4 from Volker Reichelt reichelt at gcc dot gnu.org --- Fixed by Adam's patch.
[Bug c++/60065] [c++1y] ICE with auto parameter pack
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60065 --- Comment #3 from Adam Butcher abutcher at gcc dot gnu.org --- Author: abutcher Date: Tue Feb 25 03:47:24 2014 New Revision: 208106 URL: http://gcc.gnu.org/viewcvs?rev=208106root=gccview=rev Log: Fix PR c++/60065. PR c++/60065 * parser.c (cp_parser_direct_declarator): Don't save and restore num_template_parameter_lists around call to cp_parser_parameter_declaration_list. (function_being_declared_is_template_p): New predicate. (cp_parser_parameter_declaration_list): Use function_being_declared_is_template_p as predicate for inspecting current function template parameter list length rather than num_template_parameter_lists. PR c++/60065 * g++.dg/cpp1y/pr60065.C: New testcase. Added: trunk/gcc/testsuite/g++.dg/cpp1y/pr60065.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/testsuite/ChangeLog
[Bug c++/60065] [c++1y] ICE with auto parameter pack
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60065 Adam Butcher abutcher at gcc dot gnu.org changed: What|Removed |Added CC||abutcher at gcc dot gnu.org --- Comment #1 from Adam Butcher abutcher at gcc dot gnu.org --- I think it is valid. It should be considered equivalent to: template int, typename... T void foo(T... x); Looks like the generic parameter pack 'auto...' is replacing the template argument list rather than extending it. I'll look into it.
[Bug c++/60065] [c++1y] ICE with auto parameter pack
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60065 --- Comment #2 from Adam Butcher abutcher at gcc dot gnu.org --- Turns out the base template parameter index was not been initialized correctly so it was trying to convert the 'int' parameter to a pack as well as the invented template parameter generated for the 'auto'. See http://gcc.gnu.org/ml/gcc-patches/2014-02/msg01197.html