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.]