[Bug c/107307] New: ICE tree check: expected class 'type', have 'exceptional' (error_mark) in canonicalize_component_ref, at gimplify.cc:2923

gscfq@t-online.de gcc-bugzilla@gcc.gnu.org
Tue Oct 18 17:44:38 GMT 2022


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

            Bug ID: 107307
           Summary: ICE tree check: expected class 'type', have
                    'exceptional' (error_mark) in
                    canonicalize_component_ref, at gimplify.cc:2923
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gscfq@t-online.de
  Target Milestone: ---

Started with r12 between 20210822 and 20210905 :


$ cat z1.c
void f ()
{
  const struct { int a[1]; } b;
  int *c = b.a;
  int *b;
}


$ gcc-13-20221016 -c z1.c
z1.c: In function 'f':
z1.c:4:12: warning: initialization discards 'const' qualifier from pointer
target type [-Wdiscarded-qualifiers]
    4 |   int *c = b.a;
      |            ^
z1.c:5:8: error: conflicting type qualifiers for 'b'
    5 |   int *b;
      |        ^
z1.c:3:30: note: previous declaration of 'b' with type 'const struct
<anonymous>'
    3 |   const struct { int a[1]; } b;
      |                              ^
z1.c:4:13: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in canonicalize_component_ref, at gimplify.cc:2923
    4 |   int *c = b.a;
      |            ~^~
0x6acb6d tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        ../../gcc/tree.cc:8886
0xb8578e tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
        ../../gcc/tree.h:3649
0xb8578e canonicalize_component_ref
        ../../gcc/gimplify.cc:2923
0xba3857 gimplify_compound_lval
        ../../gcc/gimplify.cc:3326
0xb9753a gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.cc:16280
0xbaa91a gimplify_addr_expr
        ../../gcc/gimplify.cc:6529
0xb9913d gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.cc:16375
0xba931f gimplify_modify_expr
        ../../gcc/gimplify.cc:6121
0xb998f7 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.cc:16328
0xb9d7d8 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.cc:7187
0xba2343 gimplify_and_add(tree_node*, gimple**)
        ../../gcc/gimplify.cc:492
0xba2343 gimplify_decl_expr
        ../../gcc/gimplify.cc:1938
0xb988b2 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.cc:16525
0xb9d7d8 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.cc:7187
0xb98bcb gimplify_statement_list
        ../../gcc/gimplify.cc:2021
0xb98bcb gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.cc:16773
0xb9d7d8 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.cc:7187
0xb9e163 gimplify_bind_expr
        ../../gcc/gimplify.cc:1430
0xb990da gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.cc:16529
0xb9d7d8 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.cc:7187


More information about the Gcc-bugs mailing list