diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/elemental_subroutine_6.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/elemental_subroutine_6.f90 | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/elemental_subroutine_6.f90 b/gcc/testsuite/gfortran.dg/elemental_subroutine_6.f90 new file mode 100644 index 000000000..44577c888 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/elemental_subroutine_6.f90 @@ -0,0 +1,25 @@ +! { 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" } } |