https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90969
Bug ID: 90969 Summary: [10 Regression] ICE: tree check: expected array_type, have vector_type in array_ref_low_bound, at tree.c:13570 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: x86_64-pc-linux-gnu gcc-10.0.0-alpha20190623 snapshot (r272608) ICEs when compiling the following testcase: __attribute__ ((__vector_size__ (4))) int v; int &a = v[0]; % x86_64-pc-linux-gnu-g++-10.0.0-alpha20190623 -c bwi47gxv.cc bwi47gxv.cc:2:13: internal compiler error: tree check: expected array_type, have vector_type in array_ref_low_bound, at tree.c:13570 2 | int &a = v[0]; | ^ 0x7cf18c tree_check_failed(tree_node const*, char const*, int, char const*, ...) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree.c:9897 0x7daea0 tree_check(tree_node*, char const*, int, char const*, tree_code) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree.h:3197 0x7daea0 array_ref_low_bound(tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/tree.c:13570 0xc44d6b get_inner_reference(tree_node*, poly_int_pod<1u, long>*, poly_int_pod<1u, long>*, tree_node**, machine_mode*, int*, int*, int*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/expr.c:7290 0xc8b5c3 fold_unary_loc(unsigned int, tree_code, tree_node*, tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/fold-const.c:7938 0xc8ba30 fold_build1_loc(unsigned int, tree_code, tree_node*, tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/fold-const.c:12292 0x8d5287 cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/constexpr.c:5125 0x8d5d77 cxx_eval_outermost_constant_expr /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/constexpr.c:5409 0x8da22c maybe_constant_value(tree_node*, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/constexpr.c:5622 0xa75d97 store_init_value(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/typeck2.c:858 0x905df8 check_initializer /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/decl.c:6587 0x925900 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/decl.c:7261 0x9bf618 cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/parser.c:20512 0x9a2675 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/parser.c:13546 0x9c6033 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/parser.c:13243 0x9c66ca cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/parser.c:4699 0x9c66ca c_parse_file() /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/cp/parser.c:41489 0xacf8b8 c_common_parse_file() /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190623/work/gcc-10-20190623/gcc/c-family/c-opts.c:1156