https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106556
Bug ID: 106556 Summary: [13 Regression] ICE in as_a, at value-range.h:399 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: --- gfortran 13.0.0 20220807 snapshot (g:ef54eb74cab17737804af2c404e6674ce07f87c9) ICEs when compiling the following testcase, extracted from gcc/testsuite/gfortran.dg/minlocval_1.f90, w/ -O1 -fnon-call-exceptions -ftree-loop-if-convert: real :: a(2) a(:) = 1.0 if (minloc (a, dim = 1).ne.1) STOP 1 end % gfortran-13.0.0 -O1 -fnon-call-exceptions -ftree-loop-if-convert -c rtqdudpz.f90 during GIMPLE pass: dom rtqdudpz.f90:5:3: 5 | end | ^ internal compiler error: in as_a, at value-range.h:399 0x7afa1d irange& as_a<irange>(vrange&) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/value-range.h:399 0x7afa1d irange& as_a<irange>(vrange&) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/value-range.h:397 0x7afa1d vrange::operator=(vrange const&) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/value-range.cc:198 0x7afa1d vrange::operator=(vrange const&) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/value-range.cc:195 0x1da8dd1 gori_compute::compute_operand1_range(vrange&, gimple*, vrange const&, tree_node*, fur_source&) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range-gori.cc:1076 0x1daa4af gori_compute::condexpr_adjust(vrange&, vrange&, gimple*, tree_node*, tree_node*, tree_node*, fur_source&) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range-gori.cc:1404 0x1da0e96 fold_using_range::range_of_cond_expr(vrange&, gassign*, fur_source&) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range-fold.cc:1303 0x1da5511 fold_using_range::fold_stmt(vrange&, gimple*, fur_source&, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range-fold.cc:561 0x1d97ae3 gimple_ranger::fold_range_internal(vrange&, gimple*, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range.cc:258 0x1d97ae3 gimple_ranger::range_of_stmt(vrange&, gimple*, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range.cc:319 0x1d9678c gimple_ranger::range_on_entry(vrange&, basic_block_def*, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range.cc:153 0x1d96ab0 gimple_ranger::range_on_exit(vrange&, basic_block_def*, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range.cc:190 0x1d988d9 gimple_ranger::range_on_edge(vrange&, edge_def*, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range.cc:234 0x1da15ec fold_using_range::range_of_phi(vrange&, gphi*, fur_source&) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range-fold.cc:802 0x1da54b0 fold_using_range::fold_stmt(vrange&, gimple*, fur_source&, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range-fold.cc:557 0x1d97ae3 gimple_ranger::fold_range_internal(vrange&, gimple*, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range.cc:258 0x1d97ae3 gimple_ranger::range_of_stmt(vrange&, gimple*, tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range.cc:319 0x1d986c6 gimple_ranger::range_of_expr(vrange&, tree_node*, gimple*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/gimple-range.cc:126 0x10aa620 cprop_operand /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/tree-ssa-dom.cc:1839 0x10aca32 cprop_into_stmt /var/tmp/portage/sys-devel/gcc-13.0.0_p20220807/work/gcc-13-20220807/gcc/tree-ssa-dom.cc:1916