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

            Bug ID: 106765
           Summary: ICE (invalid code) in tree check: expected class
                    'type', have 'exceptional' (error_mark) in
                    create_tmp_from_val, at gimplify.cc
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: k.even-mendoza at imperial dot ac.uk
  Target Milestone: ---

This code leads to ICE in GCC-12 and 13:
===
struct a {
  int b
} c() {
  struct a a;
  a.b;
  d a;
===

We are doing a study about compiler fuzzers. We got this from one of the tools.
I wonder if such a bug is interesting even if the program is chopped in the
middle?

02021d3b54a898d36d126c423b2c82b57c500705.c:5:4: internal compiler error: tree
check: expected class 'type', have 'exceptional' (error_mark) in
create_tmp_from_val, at gimplify.cc:570
    5 |   a.b;
      |   ~^~
0x7ee86d tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        .././../gcc-source/gcc/tree.cc:8867
0x72b8e0 tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
        .././../gcc-source/gcc/tree.h:3631
0x72b8e0 create_tmp_from_val
        .././../gcc-source/gcc/gimplify.cc:570
0x72b8e0 lookup_tmp_var
        .././../gcc-source/gcc/gimplify.cc:593
0x72b8e0 internal_get_tmp_var
        .././../gcc-source/gcc/gimplify.cc:648
0xc447f0 prepare_gimple_addressable
        .././../gcc-source/gcc/gimplify.cc:4586
0xc45148 gimplify_compound_lval
        .././../gcc-source/gcc/gimplify.cc:3286
0xc3e494 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        .././../gcc-source/gcc/gimplify.cc:15158
0xc426e6 gimplify_stmt(tree_node**, gimple**)
        .././../gcc-source/gcc/gimplify.cc:7153
0xc3fb1b gimplify_statement_list
        .././../gcc-source/gcc/gimplify.cc:2025
0xc3fb1b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        .././../gcc-source/gcc/gimplify.cc:15651
0xc426e6 gimplify_stmt(tree_node**, gimple**)
        .././../gcc-source/gcc/gimplify.cc:7153
0xc42ea5 gimplify_bind_expr
        .././../gcc-source/gcc/gimplify.cc:1434
0xc3f176 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        .././../gcc-source/gcc/gimplify.cc:15407
0xc50fbf gimplify_stmt(tree_node**, gimple**)
        .././../gcc-source/gcc/gimplify.cc:7153
0xc50fbf gimplify_body(tree_node*, bool)
        .././../gcc-source/gcc/gimplify.cc:16463
0xc5140b gimplify_function_tree(tree_node*)
        .././../gcc-source/gcc/gimplify.cc:16662
0xa7d1b7 cgraph_node::analyze()
        .././../gcc-source/gcc/cgraphunit.cc:676
0xa7fc87 analyze_functions
        .././../gcc-source/gcc/cgraphunit.cc:1240
0xa8095d symbol_table::finalize_compilation_unit()
        .././../gcc-source/gcc/cgraphunit.cc:2500
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to