| ! { dg-do run } |
| ! PR fortran/98307 - Dependency check fails when using "allocatable" |
| |
| program forall_deps |
| implicit none |
| type t |
| logical :: valid = .true. |
| integer :: s = 0 |
| integer, allocatable :: p(:) |
| end type |
| type(t) :: v(2) |
| integer :: i |
| |
| allocate (v(1)%p(8)) |
| allocate (v(2)%p(8)) |
| v(1)%s = 8 |
| v(2)%s = 6 |
| |
| v(1)%p(:) = [1, 2, 3, 4, 5, 6, 7, 8] |
| v(2)%p(:) = [13, 14, 15, 16, 17, 18, 19, 20] |
| forall (i=1:2) |
| v(i)%p(1:v(i)%s) = v(3-i)%p(1:v(i)%s) |
| end forall |
| if (any(v(2)%p(:) /= [1, 2, 3, 4, 5, 6, 19, 20])) stop 1 |
| |
| v(1)%p(:) = [1, 2, 3, 4, 5, 6, 7, 8] |
| v(2)%p(:) = [13, 14, 15, 16, 17, 18, 19, 20] |
| forall (i=1:2, v(i)%valid) |
| v(i)%p(1:v(i)%s) = v(3-i)%p(1:v(i)%s) |
| end forall |
| if (any(v(2)%p(:) /= [1, 2, 3, 4, 5, 6, 19, 20])) stop 2 |
| end |