gfortran 13.0.0 20220925 snapshot (g:77bbf69d2981dafc2ef3e59bfbefb645d88bab9d) ICEs when compiling the following testcase w/ -fchecking, reduced from test/Lower/forall/array-pointer.f90 from the flang 15.0.1 test suite: module array_of_pointer_test type ta integer, POINTER :: ip(:) end type ta type tb integer, POINTER :: ip(:,:) end type tb end module array_of_pointer_test subroutine s5(y,z,n1,n2) use array_of_pointer_test type(tb) :: y(:) type(ta), TARGET :: z(:) forall (i=1:10) y(i)%ip(1:n1,1:n2) => z(i)%ip end forall end subroutine s5 % gfortran-13.0.0 -fchecking -c cmpwv2kw.f90 cmpwv2kw.f90:11:13: 11 | subroutine s5(y,z,n1,n2) | ^ Error: non-trivial conversion in 'mem_ref' struct array02_integer(kind=4) struct array01_integer(kind=4) parm.12 = *_86; cmpwv2kw.f90:11:13: internal compiler error: 'verify_gimple' failed 0xfbed2d verify_gimple_in_seq(gimple*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220925/work/gcc-13-20220925/gcc/tree-cfg.cc:5237 0xcad8e5 gimplify_body(tree_node*, bool) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220925/work/gcc-13-20220925/gcc/gimplify.cc:17548 0xcadaaa gimplify_function_tree(tree_node*) /var/tmp/portage/sys-devel/gcc-13.0.0_p20220925/work/gcc-13-20220925/gcc/gimplify.cc:17664 0xacb9e7 cgraph_node::analyze() /var/tmp/portage/sys-devel/gcc-13.0.0_p20220925/work/gcc-13-20220925/gcc/cgraphunit.cc:676 0xace547 analyze_functions /var/tmp/portage/sys-devel/gcc-13.0.0_p20220925/work/gcc-13-20220925/gcc/cgraphunit.cc:1240 0xacf1ed symbol_table::finalize_compilation_unit() /var/tmp/portage/sys-devel/gcc-13.0.0_p20220925/work/gcc-13-20220925/gcc/cgraphunit.cc:2500
Confirmed. Replacing the forall construct by an ordinary do loop avoids the ICE.
(In reply to Arseny Solokha from comment #0) > gfortran 13.0.0 20220925 snapshot > (g:77bbf69d2981dafc2ef3e59bfbefb645d88bab9d) ICEs when compiling the > following testcase w/ -fchecking, reduced from > test/Lower/forall/array-pointer.f90 from the flang 15.0.1 test suite: I can confirm that this is still happening on recent gfortran. test $ /home/dcb38/gcc/results.20240214.asan.ubsan/bin/gfortran -c -w ./Lower/forall/array-pointer.f90 ./Lower/forall/array-pointer.f90:486:13: 486 | subroutine s5(x,y,z,n1,n2) | ^ Error: non-trivial conversion in ‘mem_ref’ struct array02_integer(kind=4) struct array01_integer(kind=4) parm.85 = *_86; ./Lower/forall/array-pointer.f90:486:13: internal compiler error: ‘verify_gimple’ failed