https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98580
Bug ID: 98580 Summary: ICE with -fanalyzer and LTO: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: acoplan at gcc dot gnu.org Target Milestone: --- The following fails: $ cat a.c int a; int *p = &a; void foo(); int main() { foo(); } $ cat b.c typedef struct { int a; } b; typedef struct { b c; } d; extern d e; extern int *p; void foo() { e.c.a && p; } $ aarch64-elf-gcc -flto -fanalyzer a.c b.c during IPA pass: analyzer b.c: In function 'foo': b.c:9:20: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.c:87 9 | void foo() { e.c.a && p; } | ^ 0x101c8fc tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) /home/alecop01/toolchain/src/gcc/gcc/tree.c:9860 0x949a4a tree_class_check(tree_node*, tree_code_class, char const*, int, char const*) /home/alecop01/toolchain/src/gcc/gcc/tree.h:3461 0x949a4a useless_type_conversion_p(tree_node*, tree_node*) /home/alecop01/toolchain/src/gcc/gcc/gimple-expr.c:87 0x1120770 assert_compat_types /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:1256 0x1125336 ana::region_model::get_rvalue(ana::path_var, ana::region_model_context*) /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:1391 0x111f875 ana::decl_region::get_svalue_for_initializer(ana::region_model_manager*) const /home/alecop01/toolchain/src/gcc/gcc/analyzer/region.cc:977 0x11230d8 ana::region_model::get_initial_value_for_global(ana::region const*) const /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:1451 0x112341f ana::region_model::get_store_value(ana::region const*) const /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:1533 0x1124e54 ana::region_model::get_rvalue_1(ana::path_var, ana::region_model_context*) /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:1320 0x1125316 ana::region_model::get_rvalue(ana::path_var, ana::region_model_context*) /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:1389 0x1125388 ana::region_model::get_rvalue(tree_node*, ana::region_model_context*) /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:1402 0x11254eb ana::region_model::get_gassign_result(gassign const*, ana::region_model_context*) /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:518 0x11258f6 ana::region_model::on_assignment(gassign const*, ana::region_model_context*) /home/alecop01/toolchain/src/gcc/gcc/analyzer/region-model.cc:665 0x110545b ana::exploded_node::on_stmt(ana::exploded_graph&, ana::supernode const*, gimple const*, ana::program_state*) const /home/alecop01/toolchain/src/gcc/gcc/analyzer/engine.cc:1118 0x1107970 ana::exploded_graph::process_node(ana::exploded_node*) /home/alecop01/toolchain/src/gcc/gcc/analyzer/engine.cc:2948 0x110839e ana::exploded_graph::process_worklist() /home/alecop01/toolchain/src/gcc/gcc/analyzer/engine.cc:2573 0x110a5db ana::impl_run_checkers(ana::logger*) /home/alecop01/toolchain/src/gcc/gcc/analyzer/engine.cc:4739 0x110b7f7 ana::run_checkers() /home/alecop01/toolchain/src/gcc/gcc/analyzer/engine.cc:4810 0x10fe18e execute /home/alecop01/toolchain/src/gcc/gcc/analyzer/analyzer-pass.cc:87 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. lto-wrapper: fatal error: aarch64-elf-gcc returned 1 exit status compilation terminated. /home/alecop01/toolchain/build-aarch64-elf/install/lib/gcc/aarch64-elf/11.0.0/../../../../aarch64-elf/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status