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

            Bug ID: 107985
           Summary: [13 Regression] ICE in as_a, at value-range.h:393
           Product: gcc
           Version: 13.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: ---

gcc 13.0.0 20221204 snapshot (g:24b9337d1f1b5197b6498dceb9074319be003449) ICEs
when compiling the following testcase, reduced from
test/Analysis/pointer-to-member.cpp from the clang 15 test suite, w/ -O1
-ftree-vrp -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre:

struct B {
  int f;
};

struct D : public B {
};

void foo() {
  D d;
  d.f = 7;

  int B::* pfb = &B::f;
  int D::* pfd = pfb;
  int v = d.*pfd;
}

% g++-13 -O1 -ftree-vrp -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre -c
bq32p5di.cpp
during GIMPLE pass: evrp
bq32p5di.cpp: In function 'void foo()':
bq32p5di.cpp:15:1: internal compiler error: in as_a, at value-range.h:393
   15 | }
      | ^
0x92a7d7 irange const& as_a<irange>(vrange const&)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/value-range.h:393
0x92ac0c irange const& as_a<irange>(vrange const&)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/range-op.cc:4502
0x92ac0c range_op_handler::fold_range(vrange&, tree_node*, vrange const&,
vrange const&, relation_trio) const
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/range-op.cc:4504
0x2009e48 fold_using_range::range_of_range_op(vrange&,
gimple_range_op_handler&, fur_source&)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/gimple-range-fold.cc:565
0x200aba2 fold_using_range::fold_stmt(vrange&, gimple*, fur_source&,
tree_node*)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/gimple-range-fold.cc:489
0x1ffab24 gimple_ranger::update_stmt(gimple*)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/gimple-range.cc:550
0x1377644 update_stmt_operands(function*, gimple*)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/tree-ssa-operands.cc:1150
0x1396aee update_stmt_if_modified
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/gimple-ssa.h:185
0x1396aee update_stmt_if_modified
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/gimple-ssa.h:182
0x1396aee substitute_and_fold_dom_walker::before_dom_children(basic_block_def*)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/tree-ssa-propagate.cc:935
0x1fc734e dom_walker::walk(basic_block_def*)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/domwalk.cc:311
0x139576e substitute_and_fold_engine::substitute_and_fold(basic_block_def*)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/tree-ssa-propagate.cc:998
0x149fc57 execute_ranger_vrp(function*, bool, bool)
       
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/tree-vrp.cc:1084

Reply via email to