https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84663
Bug ID: 84663
Summary: internal compiler error: tree check: expected
array_type, have error_mark in cp_complete_array_type,
at cp/decl.c:8334
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 gmail dot com
CC: webrown.cpp at gmail dot com
Target Milestone: ---
Input:
struct c {
typedef c a[alignof(long)];
int f:-1ULL;
c() {
struct {
a d;
} e[];
}
};
Output:
$ xgcc -x c++ -S -
<stdin>:3:10: warning: width of 'c::f' exceeds its type
<stdin>: In constructor 'c::c()':
<stdin>:7:9: error: size of array is too large
<stdin>:7:9: internal compiler error: tree check: expected array_type, have
error_mark in cp_complete_array_type, at cp/decl.c:8334
0x65f900 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
/home/vegard/git/gcc/gcc/tree.c:9337
0xb45e66 tree_check(tree_node*, char const*, int, char const*, tree_code)
/home/vegard/git/gcc/gcc/tree.h:3132
0xb45e66 cp_complete_array_type(tree_node**, tree_node*, bool)
/home/vegard/git/gcc/gcc/cp/decl.c:8334
0xb463f0 maybe_deduce_size_from_array_init
/home/vegard/git/gcc/gcc/cp/decl.c:5445
0xb47f66 check_initializer
/home/vegard/git/gcc/gcc/cp/decl.c:6369
0xbdcd8e cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
/home/vegard/git/gcc/gcc/cp/decl.c:7084
0xfa49d9 cp_parser_init_declarator
/home/vegard/git/gcc/gcc/cp/parser.c:19722
0xfa9757 cp_parser_simple_declaration
/home/vegard/git/gcc/gcc/cp/parser.c:13063
0xfaf948 cp_parser_block_declaration
/home/vegard/git/gcc/gcc/cp/parser.c:12881
0xfb1e14 cp_parser_declaration_statement
/home/vegard/git/gcc/gcc/cp/parser.c:12474
0xefdd8b cp_parser_statement
/home/vegard/git/gcc/gcc/cp/parser.c:10923
0xf0184b cp_parser_statement_seq_opt
/home/vegard/git/gcc/gcc/cp/parser.c:11272
0xf022ea cp_parser_compound_statement
/home/vegard/git/gcc/gcc/cp/parser.c:11226
0xf967eb cp_parser_function_body
/home/vegard/git/gcc/gcc/cp/parser.c:21769
0xf967eb cp_parser_ctor_initializer_opt_and_function_body
/home/vegard/git/gcc/gcc/cp/parser.c:21804
0xf9f9f5 cp_parser_function_definition_after_declarator
/home/vegard/git/gcc/gcc/cp/parser.c:26809
0xfa1cbc cp_parser_late_parsing_for_member
/home/vegard/git/gcc/gcc/cp/parser.c:27690
0xf1aed5 cp_parser_class_specifier_1
/home/vegard/git/gcc/gcc/cp/parser.c:22733
0xf2642b cp_parser_class_specifier
/home/vegard/git/gcc/gcc/cp/parser.c:22759
0xf2642b cp_parser_type_specifier
/home/vegard/git/gcc/gcc/cp/parser.c:16765
$ xgcc --version
xgcc (GCC) 8.0.1 20180301 (experimental)
Built from git c435a9e730c6e8f10da09d58b4fc9aaeb401b0d5 (r258097).
Doesn't seem present on 7.3.0.
Test case was minimised by C-Reduce.