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

            Bug ID: 98464
           Summary: [11 Regression] ICE: tree check: expected class
                    'type', have 'exceptional' (error_mark) in
                    tree_nop_conversion_p, at tree.c:12825
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

Created attachment 49847
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49847&action=edit
Testcase

gcc-11.0.0-alpha20201220 snapshot (g:18e86fae2a14f78e70aae06afce6bb9853068bb1)
ICEs when compiling the attached testcase, partially reduced from
test/std/containers/sequences/vector/vector.modifiers/insert_iter_rvalue.pass.cpp
from the libcxx 11.0.0 testsuite, w/ -O3 -fno-tree-dce:

% g++-11.0.0 -O3 -fno-tree-dce -c w93faca0.cpp
during GIMPLE pass: fre
w93faca0.cpp: In function 'int main()':
w93faca0.cpp:144:10: internal compiler error: tree check: expected class
'type', have 'exceptional' (error_mark) in tree_nop_conversion_p, at
tree.c:12825
  144 |      int main() {
      |          ^~~~
0x807515 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree.c:9860
0x80c768 tree_class_check(tree_node const*, tree_code_class, char const*, int,
char const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree.h:3717
0x80c768 tree_nop_conversion_p(tree_node const*, tree_node const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree.c:12825
0x16bfdf3 tree_nop_convert(tree_node*, tree_node**)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/build/gcc/generic-match.c:20
0x16dded3 generic_simplify_MINUS_EXPR
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/build/gcc/generic-match.c:29343
0xd7e350 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/fold-const.c:10756
0xd9f504 fold(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/fold-const.c:13327
0x122116f simplify_replace_tree(tree_node*, tree_node*, tree_node*, tree_node*
(*)(tree_node*, void*), void*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree-ssa-loop-niter.c:1970
0x122116f simplify_replace_tree(tree_node*, tree_node*, tree_node*, tree_node*
(*)(tree_node*, void*), void*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree-ssa-loop-niter.c:1970
0x1222167 substitute_in_loop_info(loop*, tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree-ssa-loop-niter.c:4997
0x10fb8b8 replace_uses_by(tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree-cfg.c:2028
0x10fbc0f gimple_merge_blocks
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree-cfg.c:2095
0xc26b1f merge_blocks(basic_block_def*, basic_block_def*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cfghooks.c:803
0x110c691 cleanup_tree_cfg_bb
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree-cfgcleanup.c:774
0x110cd58 cleanup_tree_cfg_noloop
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree-cfgcleanup.c:1103
0x110cd58 cleanup_tree_cfg(unsigned int)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/tree-cfgcleanup.c:1187
0xfe0534 execute_function_todo
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/passes.c:2008
0xfe0e6b execute_todo
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/passes.c:2096

Reply via email to