http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58534

            Bug ID: 58534
           Summary: [c++1y] ICE with auto in template function parameters
           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 (valid, I think) code snippet (compiled with "-std=c++1y")
triggers an ICE on trunk (4.9.0 20130922):

==================================================================
template<typename> void foo(const auto&) {}

template<typename, typename...T> void foo(const auto&, T...) {}
==================================================================

bug.cc:3:60: internal compiler error: same canonical type node for different
types const __GenT0& and const __GenT0&
 template<typename, typename...T> void foo(const auto&, T...) {}
                                                            ^
0x6617f1 comptypes
        ../../gcc/gcc/cp/typeck.c:1405
0x664dc3 compparms(tree_node const*, tree_node const*)
        ../../gcc/gcc/cp/typeck.c:1504
0x56bd6d duplicate_decls(tree_node*, tree_node*, bool)
        ../../gcc/gcc/cp/decl.c:1515
0x6f8476 push_overloaded_decl_1
        ../../gcc/gcc/cp/name-lookup.c:2352
0x6f8476 push_overloaded_decl
        ../../gcc/gcc/cp/name-lookup.c:2447
0x6f9def pushdecl_maybe_friend_1
        ../../gcc/gcc/cp/name-lookup.c:898
0x6f9def pushdecl_maybe_friend(tree_node*, bool)
        ../../gcc/gcc/cp/name-lookup.c:1264
0x6fbb37 pushdecl_with_scope_1
        ../../gcc/gcc/cp/name-lookup.c:2251
0x6fbbfd pushdecl_with_scope(tree_node*, cp_binding_level*, bool)
        ../../gcc/gcc/cp/name-lookup.c:2265
0x6fbcaf pushdecl_namespace_level(tree_node*, bool)
        ../../gcc/gcc/cp/name-lookup.c:3826
0x5c2897 push_template_decl_real(tree_node*, bool)
        ../../gcc/gcc/cp/pt.c:4867
0x55d210 start_preparsed_function(tree_node*, tree_node*, int)
        ../../gcc/gcc/cp/decl.c:13117
0x5771b6 start_function(cp_decl_specifier_seq*, cp_declarator const*,
tree_node*)
        ../../gcc/gcc/cp/decl.c:13433
0x649ee7 cp_parser_function_definition_from_specifiers_and_declarator
        ../../gcc/gcc/cp/parser.c:22217
0x649ee7 cp_parser_init_declarator
        ../../gcc/gcc/cp/parser.c:16348
0x64a974 cp_parser_single_declaration
        ../../gcc/gcc/cp/parser.c:22647
0x64d540 cp_parser_template_declaration_after_export
        ../../gcc/gcc/cp/parser.c:22449
0x6552e1 cp_parser_declaration
        ../../gcc/gcc/cp/parser.c:10728
0x653f0d cp_parser_declaration_seq_opt
        ../../gcc/gcc/cp/parser.c:10650
0x6557e6 cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.c:3939
Please submit a full bug report, [etc.]

Reply via email to