| ! OpenMP offloading test that checks we correctly map zero sized arrays | |
| ! allowing subsequent presence checks to pass. This is legal in Fortran | |
| ! as zero sized arrays are a little bit different to the scenario where | |
| ! we have a not present argument or something that's not been allocated | |
| ! at all. | |
| ! REQUIRES: flang, amdgpu | |
| ! RUN: %libomptarget-compile-fortran-run-and-check-generic | |
| program main | |
| integer, allocatable :: array(:) | |
| allocate(array(0)) | |
| !$omp target enter data map(to: array) | |
| ! Despite there technically being no data, the | |
| ! presence check should legally return true here | |
| ! and not fail. | |
| !$omp target map(present, alloc: array) | |
| !$omp end target | |
| print *, "PASS" | |
| end program | |
| ! CHECK: PASS |