| ! { dg-do run } |
| |
| type t |
| integer, pointer :: p(:) |
| end type t |
| |
| type(t) :: var(2) |
| |
| allocate (var(1)%p, source=[1,2,3,5]) |
| allocate (var(2)%p, source=[2,3,5]) |
| |
| !$omp target map(var(1)%p, var(2)%p) |
| var(1)%p(1) = 5 |
| var(2)%p(2) = 7 |
| !$omp end target |
| |
| !$omp target map(var(1)%p(1:3), var(1)%p, var(2)%p) |
| var(1)%p(1) = var(1)%p(1) + 1 |
| var(2)%p(2) = var(2)%p(2) + 1 |
| !$omp end target |
| |
| !$omp target map(var(1)%p, var(2)%p, var(2)%p(1:3)) |
| var(1)%p(1) = var(1)%p(1) + 1 |
| var(2)%p(2) = var(2)%p(2) + 1 |
| !$omp end target |
| |
| !$omp target map(var(1)%p, var(1)%p(1:3), var(2)%p, var(2)%p(2)) |
| var(1)%p(1) = var(1)%p(1) + 1 |
| var(2)%p(2) = var(2)%p(2) + 1 |
| !$omp end target |
| |
| if (var(1)%p(1).ne.8) stop 1 |
| if (var(2)%p(2).ne.10) stop 2 |
| |
| end |