| ! Basic offloading test that makes sure we can use the predominantly host |
| ! pragma threadprivate in the same program as target code |
| ! REQUIRES: flang, amdgpu |
| |
| ! RUN: %libomptarget-compile-fortran-run-and-check-generic |
| program main |
| implicit none |
| |
| type dtype |
| integer :: val(10) |
| end type dtype |
| |
| integer :: i |
| type(dtype), pointer :: pointer1 |
| type(dtype), pointer :: pointer2=>null() |
| integer, dimension(:), pointer :: data_pointer |
| |
| !$omp threadprivate(pointer2) |
| |
| nullify(pointer1) |
| allocate(pointer1) |
| |
| pointer2=>pointer1 |
| pointer2%val(:)=1 |
| data_pointer=>pointer2%val |
| |
| !$omp target |
| do i = 1, 10 |
| data_pointer(i) = i |
| end do |
| !$omp end target |
| |
| print *, data_pointer |
| |
| end program main |
| |
| ! CHECK: 1 2 3 4 5 6 7 8 9 10 |