openacc: Strided array sections and components of derived-type arrays
authorJulian Brown <julian@codesourcery.com>
Wed, 10 Feb 2021 19:18:13 +0000 (11:18 -0800)
committerJulian Brown <julian@codesourcery.com>
Wed, 17 Feb 2021 14:13:55 +0000 (06:13 -0800)
commit366cf1127a547ff77024a551abb01bb1a6e963cd
tree9d80ccbf6dbb87d6a9b843f9401c5ac593b96216
parentd28f3da11d8c0aed9b746689d723022a9b5ec04c
openacc: Strided array sections and components of derived-type arrays

This patch disallows selecting components of array sections in update
directives for OpenACC, as specified in OpenACC 3.0, "2.14.4. Update
Directive":

  In Fortran, members of variables of derived type may appear, including
  a subarray of a member. Members of subarrays of derived type may
  not appear.

The diagnostic for attempting to use the same construct on other
directives has also been improved.

gcc/fortran/
* openmp.c (resolve_omp_clauses): Disallow selecting components
of arrays of derived type.

gcc/testsuite/
* gfortran.dg/goacc/array-with-dt-2.f90: Remove expected errors.
* gfortran.dg/goacc/array-with-dt-6.f90: New test.
* gfortran.dg/goacc/mapping-tests-2.f90: Update expected error.
* gfortran.dg/goacc/ref_inquiry.f90: Update expected errors.
* gfortran.dg/gomp/ref_inquiry.f90: Likewise.

libgomp/
* testsuite/libgomp.oacc-fortran/array-stride-dt-1.f90: Remove
expected errors.
gcc/fortran/openmp.c
gcc/testsuite/gfortran.dg/goacc/array-with-dt-2.f90
gcc/testsuite/gfortran.dg/goacc/array-with-dt-6.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/mapping-tests-2.f90
gcc/testsuite/gfortran.dg/goacc/ref_inquiry.f90
gcc/testsuite/gfortran.dg/gomp/ref_inquiry.f90
libgomp/testsuite/libgomp.oacc-fortran/array-stride-dt-1.f90