https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104716
Bug ID: 104716 Summary: ICE in copy_loop_before, at tree-loop-distribution.cc:952 Product: gcc Version: 12.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: --- gfortran 12.0.1 20220227 snapshot (g:d1574a9b820f17adb9004255e2018967e9be063b) ICEs when compiling the following testcase w/ -O2 -ftree-loop-distribution -fno-move-loop-stores -fno-tree-dominator-opts: SUBROUTINE FOO() COMMON /WORK/ C2(2, 2) DIMENSION D11(2) EQUIVALENCE (D11(1), C2(1, 1)) DO 40 I = 1, 2 DO 30 J = 1, 2 ASSIGN 10 TO ILBL IF (C2(J, I) .NE. 0.0) THEN ASSIGN 20 TO ILBL ENDIF GO TO ILBL 10 CONTINUE 20 CONTINUE C2(J, I) = C2(J, I) + 1 30 CONTINUE 40 CONTINUE DO 50 I = 1, 2 PRINT 90, I 50 CONTINUE RETURN 90 FORMAT(I5) END % gfortran-12.0.1 -O2 -ftree-loop-distribution -fno-move-loop-stores -fno-tree-dominator-opts -w -c umdmfg43.f during GIMPLE pass: ldist umdmfg43.f:1:20: 1 | SUBROUTINE FOO() | ^ internal compiler error: in copy_loop_before, at tree-loop-distribution.cc:952 0x740892 copy_loop_before /var/tmp/portage/sys-devel/gcc-12.0.1_p20220227/work/gcc-12-20220227/gcc/tree-loop-distribution.cc:952 0x740892 generate_loops_for_partition /var/tmp/portage/sys-devel/gcc-12.0.1_p20220227/work/gcc-12-20220227/gcc/tree-loop-distribution.cc:988 0x740892 generate_code_for_partition /var/tmp/portage/sys-devel/gcc-12.0.1_p20220227/work/gcc-12-20220227/gcc/tree-loop-distribution.cc:1348 0x740892 loop_distribution::distribute_loop(loop*, vec<gimple*, va_heap, vl_ptr> const&, control_dependences*, int*, bool*, bool) /var/tmp/portage/sys-devel/gcc-12.0.1_p20220227/work/gcc-12-20220227/gcc/tree-loop-distribution.cc:3167 0xff7caf loop_distribution::execute(function*) /var/tmp/portage/sys-devel/gcc-12.0.1_p20220227/work/gcc-12-20220227/gcc/tree-loop-distribution.cc:3816 0xff899b execute /var/tmp/portage/sys-devel/gcc-12.0.1_p20220227/work/gcc-12-20220227/gcc/tree-loop-distribution.cc:3905