OSDN Git Service

2010-05-15 Janus Weil <janus@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / class_19.f03
1 ! { dg-do run }
2 !
3 ! PR 43969: [OOP] ALLOCATED() with polymorphic variables
4 !
5 ! Contributed by Salvatore Filippone <sfilippone@uniroma2.it>
6
7
8 module foo_mod
9   type foo_inner
10     integer, allocatable :: v(:)
11   end type foo_inner
12   type foo_outer
13     class(foo_inner), allocatable :: int
14   end type foo_outer
15 contains
16 subroutine foo_checkit()
17   implicit none
18   type(foo_outer)    :: try
19   type(foo_outer),allocatable :: try2
20   class(foo_outer), allocatable :: try3
21   
22   if (allocated(try%int)) call abort()
23   allocate(foo_outer :: try3)
24   if (allocated(try3%int)) call abort()
25   allocate(try2)
26   if (allocated(try2%int)) call abort()
27  
28 end subroutine foo_checkit
29 end module foo_mod
30
31
32 program main
33
34   use foo_mod
35   implicit none
36   
37   call foo_checkit()
38
39 end program main
40
41 ! { dg-final { cleanup-modules "foo_mod" } }