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

            Bug ID: 94475
           Summary: [10 Regression] ICE: tree check: expected class
                    'type', have 'exceptional' (error_mark) in
                    element_mode, at tree.c:13813
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: error-recovery, 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.1-alpha20200329 snapshot (g:60c254b279e8e8443b8ad26cc46b9e4084cff66c)
ICEs when compiling the following testcase, extracted from
test/std/numerics/bit/bitops.rot/rotr.pass.cpp from the libcxx 10.0.0 test
suite:

unsigned char
sr ()
{
  const unsigned char xz = EI;

  return xz - (xz >> 1);
}

% g++-10.0.1 -c ayrzmymn.cpp
ayrzmymn.cpp: In function 'unsigned char sr()':
ayrzmymn.cpp:4:28: error: 'EI' was not declared in this scope
    4 |   const unsigned char xz = EI;
      |                            ^~
ayrzmymn.cpp:6:23: internal compiler error: tree check: expected class 'type',
have 'exceptional' (error_mark) in element_mode, at tree.c:13813
    6 |   return xz - (xz >> 1);
      |                       ^
0x7bb6b4 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/tree.c:9787
0x7c101b tree_class_check(tree_node const*, tree_code_class, char const*, int,
char const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/tree.h:3657
0x7c101b element_mode(tree_node const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/tree.c:13813
0xcaacef fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/fold-const.c:10795
0xcb3749 fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/fold-const.c:13157
0xb95872 do_narrow
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/convert.c:439
0xb98936 convert_to_integer_1
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/convert.c:844
0xb99848 convert_to_integer_maybe_fold(tree_node*, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/convert.c:980
0x8d735d ocp_convert(tree_node*, tree_node*, int, int, int)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/cvt.c:874
0x8d007d cp_fold
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/cp-gimplify.c:2494
0x8d110c cp_fold_maybe_rvalue(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/cp-gimplify.c:2330
0xa79958 maybe_warn_about_returning_address_of_local
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/typeck.c:9480
0xa79958 check_return_expr(tree_node*, bool*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/typeck.c:10089
0xa2c2bf finish_return_stmt(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/semantics.c:955
0x99b0d0 cp_parser_jump_statement
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:13111
0x99b0d0 cp_parser_statement
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:11362
0x99c4d8 cp_parser_statement_seq_opt
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:11835
0x99c5b8 cp_parser_compound_statement
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:11785
0x9b4855 cp_parser_function_body
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:23062
0x9b4855 cp_parser_ctor_initializer_opt_and_function_body
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:23113

Reply via email to