summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/elemental_subroutine_6.f90
blob: 44577c888b79444f8ca89397f08aa26603ea020d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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" } }