https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85015

            Bug ID: 85015
           Summary: internal compiler error: tree check: expected class
                    'type', have 'exceptional' (error_mark) in
                    build_int_cst, at tree.c:1360
           Product: gcc
           Version: 8.0.1
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vegard.nossum at oracle dot com
                CC: webrown.cpp at gmail dot com
  Target Milestone: ---

Input:

void b() {
  enum &&c(());
  struct {
    void d() { int a[c]; }
  };
}

Output:

$ cc1plus 
 void b()
<stdin>:2:13: error: expected primary-expression before ')' token
 void b()::<unnamed struct>::d()
<stdin>:4:23: error: use of local variable with automatic storage from
containing function
<stdin>:2:10: note: 'int&& c' declared here
<stdin>:4:23: error: use of local variable with automatic storage from
containing function
<stdin>:2:10: note: 'int&& c' declared here
<stdin>:4:23: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in build_int_cst, at tree.c:1360
0x660619 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        /home/vegard/git/gcc/gcc/tree.c:9388
0x40992d5 tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
        /home/vegard/git/gcc/gcc/tree.h:3255
0x40992d5 build_int_cst(tree_node*, poly_int<1u, long>)
        /home/vegard/git/gcc/gcc/tree.c:1360
0x1fd2277 round_up_loc(unsigned int, tree_node*, unsigned int)
        /home/vegard/git/gcc/gcc/fold-const.c:14350
0x30f9e26 finalize_type_size
        /home/vegard/git/gcc/gcc/stor-layout.c:1908
0x3115667 layout_type(tree_node*)
        /home/vegard/git/gcc/gcc/stor-layout.c:2578
0x408c0c7 build_array_type_1
        /home/vegard/git/gcc/gcc/tree.c:7869
0x135eebe build_cplus_array_type(tree_node*, tree_node*)
        /home/vegard/git/gcc/gcc/cp/tree.c:985
0xc024d5 create_array_type_for_decl
        /home/vegard/git/gcc/gcc/cp/decl.c:9793
0xc024d5 grokdeclarator(cp_declarator const*, cp_decl_specifier_seq*,
decl_context, int, tree_node**)
        /home/vegard/git/gcc/gcc/cp/decl.c:10985
0xc158d8 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
        /home/vegard/git/gcc/gcc/cp/decl.c:4998
0xf9f96c cp_parser_init_declarator
        /home/vegard/git/gcc/gcc/cp/parser.c:19600
0xfa57a7 cp_parser_simple_declaration
        /home/vegard/git/gcc/gcc/cp/parser.c:13065
0xfab998 cp_parser_block_declaration
        /home/vegard/git/gcc/gcc/cp/parser.c:12883
0xfade64 cp_parser_declaration_statement
        /home/vegard/git/gcc/gcc/cp/parser.c:12476
0xefab2b cp_parser_statement
        /home/vegard/git/gcc/gcc/cp/parser.c:10925
0xefe5eb cp_parser_statement_seq_opt
        /home/vegard/git/gcc/gcc/cp/parser.c:11274
0xeff08a cp_parser_compound_statement
        /home/vegard/git/gcc/gcc/cp/parser.c:11228
0xf9283b cp_parser_function_body
        /home/vegard/git/gcc/gcc/cp/parser.c:21778
0xf9283b cp_parser_ctor_initializer_opt_and_function_body
        /home/vegard/git/gcc/gcc/cp/parser.c:21813
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Version:

GNU C++14 (GCC) version 8.0.1 20180306 (experimental) (x86_64-pc-linux-gnu)

7.3.0 seems ok

Reply via email to