https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91545
Bug ID: 91545 Summary: [10 Regression] ICE: tree check: expected field_decl, have var_decl in cxx_eval_store_expression, at cp/constexpr.c:3852 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-10.0.0-alpha20190825 snapshot (r274915) ICEs when compiling gcc/testsuite/gcc.dg/20161219.c: % g++-10.0.0-alpha20190825 -c gcc/testsuite/gcc.dg/20161219.c gcc/testsuite/gcc.dg/20161219.c: In function 'int fn1(int*)': gcc/testsuite/gcc.dg/20161219.c:16:18: internal compiler error: tree check: expected field_decl, have var_decl in cxx_eval_store_expression, at cp/constexpr.c:3852 16 | e && (a[d] = 0); | ^ 0x7d4b9c tree_check_failed(tree_node const*, char const*, int, char const*, ...) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/tree.c:9925 0x5d51b8 tree_check(tree_node*, char const*, int, char const*, tree_code) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/tree.h:3263 0x5d51b8 cxx_eval_store_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/constexpr.c:3852 0x8db063 cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/constexpr.c:4845 0x8ddf77 cxx_eval_outermost_constant_expr /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/constexpr.c:5573 0x8e21ed maybe_constant_value(tree_node*, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/constexpr.c:5786 0x8f74c0 cp_fully_fold(tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/cp-gimplify.c:2197 0xa6c390 cp_build_binary_op(op_location_t const&, tree_code, tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/typeck.c:5565 0xa6f611 build_binary_op(unsigned int, tree_code, tree_node*, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/typeck.c:4280 0x8fc552 ocp_convert(tree_node*, tree_node*, int, int, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/cvt.c:849 0x8fd634 cp_convert(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/cvt.c:636 0x8fd634 cp_convert_and_check(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/cvt.c:669 0xa6c632 cp_build_binary_op(op_location_t const&, tree_code, tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/typeck.c:5517 0x8b4f8d build_new_op_1 /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/call.c:6231 0x8b59da build_new_op(op_location_t const&, tree_code, int, tree_node*, tree_node*, tree_node*, tree_node**, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/call.c:6275 0xa6102b build_x_binary_op(op_location_t const&, tree_code, tree_node*, tree_code, tree_node*, tree_code, tree_node**, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/typeck.c:4185 0x99c9d2 cp_parser_binary_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/parser.c:9625 0x99d72f cp_parser_assignment_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/parser.c:9760 0x99d9b2 cp_parser_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/parser.c:9928 0x9a0ed1 cp_parser_expression_statement /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190825/work/gcc-10-20190825/gcc/cp/parser.c:11535