summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/finalize_16.f90
blob: 89c5cfb8d99f8f6a903726dd7918aca1957ad6e1 (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
26
27
28
29
30
31
32
! { dg-do compile }
! { dg-options "-fcheck=all" }
!
! PR fortran/57542
!
! Contributed by Salvatore Filippone
!
module type_mod
  type inner
  end type inner

  type outer 
    class(inner), allocatable :: item
  end type outer

  type container 
    class(outer), allocatable :: item
  end type container

  type maintype
    type(container), allocatable :: v(:)
  end type maintype

end module type_mod

subroutine testfinal(var)
  use type_mod
  type(maintype), intent(inout) :: var
  ! A real code would obviously check
  ! this is really allocated
  deallocate(var%v(1)%item%item)
end subroutine testfinal