Reset branch to trunk.
[official-gcc.git] / trunk / gcc / testsuite / gfortran.dg / select_type_6.f03
blob3b3c08e2296f0f25a53e9d9b4e6cca9b3583fe75
1 ! { dg-do run }
3 ! PR 41579: [OOP/Polymorphism] Nesting of SELECT TYPE
5 ! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
7  type t1
8  end type t1
10  type, extends(t1) :: t2
11   integer :: i
12  end type t2
14  type, extends(t1) :: t3
15   integer :: j
16  end type t3
18  class(t1), allocatable :: mt2, mt3
19  allocate(t2 :: mt2)
20  allocate(t3 :: mt3)
22  select type (mt2)
23  type is(t2)
24    mt2%i = 5
25    print *,mt2%i
26    select type(mt3)
27    type is(t3)
28      mt3%j = 2*mt2%i
29      print *,mt3%j
30      if (mt3%j /= 10) call abort()
31    class default
32      call abort()
33    end select
34  class default
35    call abort()
36  end select
38 end