https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97021
Bug ID: 97021
Summary: [OpenMP] copy out of allocatable scalars does not
work.
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Keywords: openmp, wrong-code
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
The following program stops with "STOP 7" – as no copy out of the data from the
target region happens, i.e. a1 is still 99 and p1 is still 123.
* * *
implicit none
integer, pointer :: p1
integer, allocatable :: a1
allocate(p1)
a1 = 99
p1 = 123
!$omp target data map(p1, a1)
if (.not.associated(p1)) stop 1
if (.not.allocated(a1)) stop 2
if (a1 /= 99) stop 3
if (p1 /= 123) stop 4
a1 = -3
p1 = -22
!$omp end target data
if (.not.associated(p1)) stop 5
if (.not.allocated(a1)) stop 6
if (a1 /= -3) stop 7
if (p1 /= 22) stop 8
end