[Bug c++/60200] New: [c++11] ICE with invalid use of auto in typedef

reichelt at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Feb 14 16:02:00 GMT 2014


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

            Bug ID: 60200
           Summary: [c++11] ICE with invalid use of auto in typedef
           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 invalid code snippet (compiled with "-std=c++11") triggers
an ICE on trunk:

===========================================
template<typename> struct A
{
  typedef auto X;
};

A<int> a;
===========================================

bug.cc:3:16: error: typedef declared 'auto'
   typedef auto X;
                ^
bug.cc: In instantiation of 'struct A<int>':
bug.cc:6:8:   required from here
bug.cc:3:16: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in tsubst_decl, at cp/pt.c:10817
0xdc0407 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        ../../gcc/gcc/tree.c:9243
0x631b69 tree_class_check
        ../../gcc/gcc/tree.h:2832
0x631b69 tsubst_decl
        ../../gcc/gcc/cp/pt.c:10817
0x61be9f tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/gcc/cp/pt.c:11357
0x64a34a instantiate_class_template_1
        ../../gcc/gcc/cp/pt.c:9010
0x64a34a instantiate_class_template(tree_node*)
        ../../gcc/gcc/cp/pt.c:9274
0x6db973 complete_type(tree_node*)
        ../../gcc/gcc/cp/typeck.c:134
0x5c4f38 start_decl_1(tree_node*, bool)
        ../../gcc/gcc/cp/decl.c:4719
0x5ede67 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
        ../../gcc/gcc/cp/decl.c:4682
0x6c7e9e cp_parser_init_declarator
        ../../gcc/gcc/cp/parser.c:16680
0x6c9929 cp_parser_simple_declaration
        ../../gcc/gcc/cp/parser.c:11205
0x6acc13 cp_parser_block_declaration
        ../../gcc/gcc/cp/parser.c:11086
0x6d3ec2 cp_parser_declaration
        ../../gcc/gcc/cp/parser.c:10983
0x6d2bb8 cp_parser_declaration_seq_opt
        ../../gcc/gcc/cp/parser.c:10869
0x6d445a cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.c:4014
0x6d445a c_parse_file()
        ../../gcc/gcc/cp/parser.c:31536
0x7f37c3 c_common_parse_file()
        ../../gcc/gcc/c-family/c-opts.c:1060
Please submit a full bug report, [etc.]



More information about the Gcc-bugs mailing list