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

            Bug ID: 60248
           Summary: [4.7/4.8/4.9 Regression] ICE specializing variadic
                    template
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: reichelt at gcc dot gnu.org

The following valid code snippet (compiled with "-std=c++11 -g")
triggers an ICE since GCC 4.7.0:

====================================
template<int...> struct A {};

template<> struct A<0>
{
  typedef enum { e } B;
};

A<0> a;
====================================

bug.cc:3:19: internal compiler error: tree check: expected var_decl or
function_decl, have type_decl in make_alias_for, at cp/method.c:230
 template<> struct A<0>
                   ^
0xdbfcc4 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/gcc/tree.c:9192
0x7118bf tree_check2
        ../../gcc/gcc/tree.h:2728
0x7118bf make_alias_for(tree_node*, tree_node*)
        ../../gcc/gcc/cp/method.c:230
0x776e40 mangle_decl(tree_node*)
        ../../gcc/gcc/cp/mangle.c:3510
0xdc1e20 decl_assembler_name(tree_node*)
        ../../gcc/gcc/tree.c:600
0x8e105e add_linkage_attr
        ../../gcc/gcc/dwarf2out.c:16558
0x905de9 gen_typedef_die
        ../../gcc/gcc/dwarf2out.c:19593
0x8f1654 gen_typedef_die
        ../../gcc/gcc/dwarf2out.c:19544
0x8f1654 gen_decl_die
        ../../gcc/gcc/dwarf2out.c:20403
0x8f454c gen_type_die_with_usage
        ../../gcc/gcc/dwarf2out.c:19736
0x8f127c gen_decl_die
        ../../gcc/gcc/dwarf2out.c:20400
0x8f340c gen_member_die
        ../../gcc/gcc/dwarf2out.c:19400
0x8f340c gen_struct_or_union_type_die
        ../../gcc/gcc/dwarf2out.c:19486
0x8f340c gen_tagged_type_die
        ../../gcc/gcc/dwarf2out.c:19676
0x8f4c30 gen_type_die_with_usage
        ../../gcc/gcc/dwarf2out.c:19823
0x8f127c gen_decl_die
        ../../gcc/gcc/dwarf2out.c:20400
0xafc8d2 rest_of_type_compilation(tree_node*, int)
        ../../gcc/gcc/passes.c:283
0x675d73 finish_struct_1(tree_node*)
        ../../gcc/gcc/cp/class.c:6636
0x677574 finish_struct(tree_node*, tree_node*)
        ../../gcc/gcc/cp/class.c:6801
0x6a97ba cp_parser_class_specifier_1
        ../../gcc/gcc/cp/parser.c:19218
Please submit a full bug report, [etc.]

Reply via email to