| ! { dg-do run } |
| |
| program myprog |
| type u |
| integer, dimension (:), pointer :: tarr |
| end type u |
| |
| type(u) :: myu |
| integer, dimension (12), target :: myarray |
| |
| myu%tarr => myarray |
| |
| myu%tarr = 0 |
| |
| !$omp target map(to:myu%tarr) map(tofrom:myu%tarr(:)) |
| myu%tarr(1) = myu%tarr(1) + 1 |
| !$omp end target |
| |
| !$omp target map(to:myu%tarr) map(tofrom:myu%tarr(1:2)) |
| myu%tarr(1) = myu%tarr(1) + 1 |
| !$omp end target |
| |
| !$omp target map(to:myu%tarr) map(tofrom:myu%tarr(1)) |
| myu%tarr(1) = myu%tarr(1) + 1 |
| !$omp end target |
| |
| !$omp target map(tofrom:myu%tarr) |
| myu%tarr(1) = myu%tarr(1) + 1 |
| !$omp end target |
| |
| if (myu%tarr(1).ne.4) stop 1 |
| |
| end program myprog |