openacc: Don't strip TO_PSET/POINTER for enter/exit data
authorJulian Brown <julian@codesourcery.com>
Fri, 5 Jun 2020 21:46:41 +0000 (14:46 -0700)
committerJulian Brown <julian@codesourcery.com>
Mon, 13 Jul 2020 10:21:20 +0000 (03:21 -0700)
commitb20097c65d2e74b1901fba1c55c77f0407e542d2
tree954defb734e68a90c47c5147f0392ef7aecb61ac
parent7a4770f0394751860ee54520b23007938907ac33
openacc: Don't strip TO_PSET/POINTER for enter/exit data

OpenACC 2.6 specifies that the array descriptor (when present) must be
copied to the target before attaching pointers in Fortran. This patch
reverses the stripping of GOMP_MAP_TO_PSET and GOMP_MAP_POINTER that
was introduced by the "OpenACC reference count overhaul" patch.

2020-07-10  Julian Brown  <julian@codesourcery.com>
    Thomas Schwinge  <thomas@codesourcery.com>

gcc/
* gimplify.c (gimplify_scan_omp_clauses): Do not strip
GOMP_MAP_TO_PSET/GOMP_MAP_POINTER for OpenACC enter/exit data
directives (see also PR92929).

gcc/testsuite/
* gfortran.dg/goacc/finalize-1.f: Update expected dump output.

libgomp/
* testsuite/libgomp.oacc-fortran/dynamic-pointer-1.f90: New test.

Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
gcc/gimplify.c
gcc/testsuite/gfortran.dg/goacc/finalize-1.f
libgomp/testsuite/libgomp.oacc-fortran/dynamic-pointer-1.f90 [new file with mode: 0644]