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

            Bug ID: 59270
           Summary: [4.9 Regression] [c++11] ICE with decltype of a broken
                    class
           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:

====================
struct A
{
  struct B b;
};

decltype(A()) a;
====================

bug.cc:3:12: error: field 'b' has incomplete type 'B'
   struct B b;
            ^
bug.cc:6:12: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in type_build_ctor_call, at cp/class.c:5163
 decltype(A()) a;
            ^
0xd5dc85 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        ../../gcc/gcc/tree.c:9243
0x614ed6 tree_class_check
        ../../gcc/gcc/tree.h:2831
0x614ed6 type_build_ctor_call(tree_node*)
        ../../gcc/gcc/cp/class.c:5163
0x6bcdb7 build_value_init(tree_node*, int)
        ../../gcc/gcc/cp/init.c:339
0x6bc9ef build_value_init_noctor(tree_node*, int)
        ../../gcc/gcc/cp/init.c:412
0x6bce4c build_value_init(tree_node*, int)
        ../../gcc/gcc/cp/init.c:364
0x606e6b build_functional_cast(tree_node*, tree_node*, int)
        ../../gcc/gcc/cp/typeck2.c:1858
0x66c0b5 cp_parser_functional_cast
        ../../gcc/gcc/cp/parser.c:23013
0x666930 cp_parser_postfix_expression
        ../../gcc/gcc/cp/parser.c:5821
0x6675ec cp_parser_decltype_expr
        ../../gcc/gcc/cp/parser.c:11833
0x6675ec cp_parser_decltype
        ../../gcc/gcc/cp/parser.c:11932
0x67eb57 cp_parser_simple_type_specifier
        ../../gcc/gcc/cp/parser.c:14462
0x65f29d cp_parser_type_specifier
        ../../gcc/gcc/cp/parser.c:14309
0x67634f cp_parser_decl_specifier_seq
        ../../gcc/gcc/cp/parser.c:11476
0x67ce69 cp_parser_simple_declaration
        ../../gcc/gcc/cp/parser.c:11066
0x660e03 cp_parser_block_declaration
        ../../gcc/gcc/cp/parser.c:11015
0x6875a6 cp_parser_declaration
        ../../gcc/gcc/cp/parser.c:10912
0x686298 cp_parser_declaration_seq_opt
        ../../gcc/gcc/cp/parser.c:10798
0x687b6a cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.c:4018
0x687b6a c_parse_file()
        ../../gcc/gcc/cp/parser.c:31259
Please submit a full bug report, [etc.]

Reply via email to