RISC-V: Refactor Dynamic LMUL codes
[official-gcc.git] / gcc / testsuite / gfortran.dg / forall_19.f90
blobef05c97ab24d879a0f4f922401de06fc83a39ed2
1 ! { dg-do run }
2 ! PR fortran/98307 - Dependency check fails when using "allocatable"
4 program forall_deps
5 implicit none
6 type t
7 logical :: valid = .true.
8 integer :: s = 0
9 integer, allocatable :: p(:)
10 end type
11 type(t) :: v(2)
12 integer :: i
14 allocate (v(1)%p(8))
15 allocate (v(2)%p(8))
16 v(1)%s = 8
17 v(2)%s = 6
19 v(1)%p(:) = [1, 2, 3, 4, 5, 6, 7, 8]
20 v(2)%p(:) = [13, 14, 15, 16, 17, 18, 19, 20]
21 forall (i=1:2)
22 v(i)%p(1:v(i)%s) = v(3-i)%p(1:v(i)%s)
23 end forall
24 if (any(v(2)%p(:) /= [1, 2, 3, 4, 5, 6, 19, 20])) stop 1
26 v(1)%p(:) = [1, 2, 3, 4, 5, 6, 7, 8]
27 v(2)%p(:) = [13, 14, 15, 16, 17, 18, 19, 20]
28 forall (i=1:2, v(i)%valid)
29 v(i)%p(1:v(i)%s) = v(3-i)%p(1:v(i)%s)
30 end forall
31 if (any(v(2)%p(:) /= [1, 2, 3, 4, 5, 6, 19, 20])) stop 2
32 end