From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16739 invoked by alias); 4 Feb 2014 21:10:47 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 16304 invoked by uid 48); 4 Feb 2014 21:10:42 -0000 From: "reichelt at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/60065] New: [c++1y] ICE with auto parameter pack Date: Tue, 04 Feb 2014 21:10:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 4.9.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: reichelt at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-02/txt/msg00335.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60065 Bug ID: 60065 Summary: [c++1y] ICE with auto parameter pack Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org The following line of code (compiled with "-std=c++1y") triggers an ICE on trunk: ======================================== template void foo(auto... x); ======================================== bug.cc:1:32: internal compiler error: tree check: expected template_type_parm or template_template_parm or bound_template_template_parm, have integer_type in convert_generic_types_to_packs, at cp/pt.c:21726 template void foo(auto... x); ^ 0xdc4824 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/gcc/tree.c:9192 0x64ad63 tree_check3 ../../gcc/gcc/tree.h:2749 0x64ad63 convert_generic_types_to_packs(tree_node*, int, int) ../../gcc/gcc/cp/pt.c:21726 0x6c8f47 cp_parser_parameter_declaration_list ../../gcc/gcc/cp/parser.c:18279 0x6c9532 cp_parser_parameter_declaration_clause ../../gcc/gcc/cp/parser.c:18179 0x6bfd05 cp_parser_direct_declarator ../../gcc/gcc/cp/parser.c:17072 0x6bfd05 cp_parser_declarator ../../gcc/gcc/cp/parser.c:16943 0x6ca599 cp_parser_init_declarator ../../gcc/gcc/cp/parser.c:16496 0x6cb41a cp_parser_single_declaration ../../gcc/gcc/cp/parser.c:23113 0x6cb704 cp_parser_template_declaration_after_export ../../gcc/gcc/cp/parser.c:22915 0x6d6af9 cp_parser_declaration ../../gcc/gcc/cp/parser.c:10947 0x6d55e8 cp_parser_declaration_seq_opt ../../gcc/gcc/cp/parser.c:10869 0x6d6eca cp_parser_translation_unit ../../gcc/gcc/cp/parser.c:4014 0x6d6eca c_parse_file() ../../gcc/gcc/cp/parser.c:31528 0x7f6973 c_common_parse_file() ../../gcc/gcc/c-family/c-opts.c:1060 Please submit a full bug report, [etc.] The code compiles if I remove the 'x' or replace 'int' by 'typename'. I'm not sure whether the code is valid or not, though.