! { dg-do compile } ! PR35184 ICE in gfc_conv_array_index_offset MODULE foo TYPE, PUBLIC :: bar PRIVATE REAL :: value END TYPE bar INTERFACE ASSIGNMENT (=) MODULE PROCEDURE assign_bar END INTERFACE ASSIGNMENT (=) CONTAINS ELEMENTAL SUBROUTINE assign_bar (to, from) TYPE(bar), INTENT(OUT) :: to TYPE(bar), INTENT(IN) :: from to%value= from%value END SUBROUTINE SUBROUTINE my_sub (in, out) IMPLICIT NONE TYPE(bar), DIMENSION(:,:), POINTER :: in TYPE(bar), DIMENSION(:,:), POINTER :: out ALLOCATE( out(1:42, 1:42) ) out(1, 1:42) = in(1, 1:42) END SUBROUTINE END MODULE foo ! { dg-final { cleanup-modules "foo" } }