annotate gcc/testsuite/gfortran.dg/move_alloc_13.f90 @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do run }
kono
parents:
diff changeset
2 !
kono
parents:
diff changeset
3 ! PR fortran/51970
kono
parents:
diff changeset
4 ! PR fortran/51977
kono
parents:
diff changeset
5 !
kono
parents:
diff changeset
6 type t
kono
parents:
diff changeset
7 end type t
kono
parents:
diff changeset
8 type, extends(t) :: t2
kono
parents:
diff changeset
9 integer :: a
kono
parents:
diff changeset
10 end type t2
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 class(t), allocatable :: y(:), z(:)
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 allocate(y(2), source=[t2(2), t2(3)])
kono
parents:
diff changeset
15 call func2(y,z)
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 select type(z)
kono
parents:
diff changeset
18 type is(t2)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
19 if (any (z(:)%a /= [2, 3])) STOP 1
111
kono
parents:
diff changeset
20 class default
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
21 STOP 2
111
kono
parents:
diff changeset
22 end select
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 contains
kono
parents:
diff changeset
25 function func(x)
kono
parents:
diff changeset
26 class (t), allocatable :: x(:), func(:)
kono
parents:
diff changeset
27 call move_alloc (x, func)
kono
parents:
diff changeset
28 end function
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 function func1(x)
kono
parents:
diff changeset
31 class (t), allocatable :: x(:), func1(:)
kono
parents:
diff changeset
32 call move_alloc (func1, x)
kono
parents:
diff changeset
33 end function
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 subroutine func2(x, y)
kono
parents:
diff changeset
36 class (t), allocatable :: x(:), y(:)
kono
parents:
diff changeset
37 call move_alloc (x, y)
kono
parents:
diff changeset
38 end subroutine
kono
parents:
diff changeset
39 end