https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97609
Bug ID: 97609 Summary: [11 Regression] ICE: tree check: expected tree that contains 'decl common' structure, have 'component_ref' in tree_could_trap_p, at tree-eh.c:2708 Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Created attachment 49457 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49457&action=edit Testcase g++-11.0.0-alpha20201025 snapshot (g:308e40331f9d2820f8286769b5fc764671187364) ICEs when compiling the attached testcase, reduced from test/std/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp from the libcxx 10.0.1 test suite, w/ -O2 -fno-tree-fre -fnon-call-exceptions: % g++-11.0.0 -O2 -fno-tree-fre -fnon-call-exceptions -c d1sutzlp.cpp during GIMPLE pass: evrp d1sutzlp.cpp: In member function 'forward_list< <template-parameter-1-1>, <template-parameter-1-2> >::__remove_return_type forward_list< <template-parameter-1-1>, <template-parameter-1-2> >::unique(_BinPred) [with _BinPred = int; <template-parameter-1-1> = int; <template-parameter-1-2> = int]': d1sutzlp.cpp:41:1: internal compiler error: tree check: expected tree that contains 'decl common' structure, have 'component_ref' in tree_could_trap_p, at tree-eh.c:2708 41 | } | ^ 0x7dbdc8 tree_contains_struct_check_failed(tree_node const*, tree_node_structure_enum, char const*, int, char const*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree.c:9903 0x780afc contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree.h:3417 0x780afc tree_could_trap_p(tree_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-eh.c:2708 0x10875f4 stmt_could_throw_1_p /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-eh.c:2868 0x10875f4 stmt_could_throw_p(function*, gimple*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-eh.c:2922 0x1088fe5 stmt_could_throw_p(function*, gimple*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-eh.c:2894 0x1088fe5 stmt_can_throw_internal(function*, gimple*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-eh.c:2996 0x12cdff5 infer_value_range(gimple*, tree_node*, tree_code*, tree_node**) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-vrp.c:1331 0x12cdff5 infer_value_range(gimple*, tree_node*, tree_code*, tree_node**) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-vrp.c:1317 0x19b157f non_null_ref::process_name(tree_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/gimple-range-cache.cc:102 0x19b1694 non_null_ref::non_null_deref_p(tree_node*, basic_block_def*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/gimple-range-cache.cc:60 0x19b1694 non_null_ref::non_null_deref_p(tree_node*, basic_block_def*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/gimple-range-cache.cc:53 0x19b3a78 ranger_cache::fill_block_cache(tree_node*, basic_block_def*, basic_block_def*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/gimple-range-cache.cc:772 0x19b3efd ranger_cache::block_range(irange&, basic_block_def*, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/gimple-range-cache.cc:589 0x19ac7e4 gimple_ranger::range_on_entry(irange&, basic_block_def*, tree_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/gimple-range.cc:939 0x19ad13b gimple_ranger::range_of_expr(irange&, tree_node*, gimple*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/gimple-range.cc:910 0x130e921 range_query::value_of_expr(tree_node*, gimple*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/value-query.cc:86 0x19bb0c1 hybrid_folder::value_of_expr(tree_node*, gimple*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/gimple-ssa-evrp.c:235 0x11c2784 substitute_and_fold_engine::replace_uses_in(gimple*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-ssa-propagate.c:871 0x11c2aab substitute_and_fold_dom_walker::before_dom_children(basic_block_def*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201025/work/gcc-11-20201025/gcc/tree-ssa-propagate.c:1141