1! { dg-do run }
2! { dg-options "-std=f2003 -fall-intrinsics" }
3
4! PR fortran/38936
5! Check associate to polymorphic entities.
6
7! Contributed by Tobias Burnus, burnus@gcc.gnu.org.
8
9type t
10end type t
11
12type, extends(t) :: t2
13end type t2
14
15class(t), allocatable :: a, b
16allocate( t :: a)
17allocate( t2 :: b)
18
19associate ( one => a, two => b)
20  select type(two)
21    type is (t)
22      call abort ()
23    type is (t2)
24      print *, 'OK', two
25    class default
26      call abort ()
27  end select
28  select type(one)
29    type is (t2)
30      call abort ()
31    type is (t)
32      print *, 'OK', one
33    class default
34      call abort ()
35  end select
36end associate
37end
38