From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1534) id 7A6103858424; Fri, 29 Jul 2022 10:45:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7A6103858424 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Tobias Burnus To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/omp/gcc-12] OpenMP/Fortran: Permit assumed-size arrays in uniform clause X-Act-Checkin: gcc X-Git-Author: Tobias Burnus X-Git-Refname: refs/heads/devel/omp/gcc-12 X-Git-Oldrev: 70d8133b609acdf23bdec3d7adf9c437605795e5 X-Git-Newrev: 547a6252e94837e143f13bd7f8dc5f38dd5acd1a Message-Id: <20220729104520.7A6103858424@sourceware.org> Date: Fri, 29 Jul 2022 10:45:20 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jul 2022 10:45:20 -0000 https://gcc.gnu.org/g:547a6252e94837e143f13bd7f8dc5f38dd5acd1a commit 547a6252e94837e143f13bd7f8dc5f38dd5acd1a Author: Tobias Burnus Date: Fri Jul 29 12:39:35 2022 +0200 OpenMP/Fortran: Permit assumed-size arrays in uniform clause gcc/fortran/ChangeLog: * openmp.cc (resolve_omp_clauses): Permit assumed-size arrays in uniform clause. gcc/testsuite/ChangeLog: * gfortran.dg/gomp/declare-simd-3.f90: New test. (cherry picked from commit a6afbe5e9528e9ec3f0426d9791bd28e6e584d82) Diff: --- gcc/fortran/ChangeLog.omp | 8 ++++++ gcc/fortran/openmp.cc | 3 ++- gcc/testsuite/ChangeLog.omp | 7 ++++++ gcc/testsuite/gfortran.dg/gomp/declare-simd-3.f90 | 30 +++++++++++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/gcc/fortran/ChangeLog.omp b/gcc/fortran/ChangeLog.omp index 5e1b91afa82..9877be5ec41 100644 --- a/gcc/fortran/ChangeLog.omp +++ b/gcc/fortran/ChangeLog.omp @@ -1,3 +1,11 @@ +2022-07-29 Tobias Burnus + + Backport from mainline: + 2022-07-29 Tobias Burnus + + * openmp.cc (resolve_omp_clauses): Permit assumed-size arrays + in uniform clause. + 2022-07-05 Tobias Burnus Backport from mainline: diff --git a/gcc/fortran/openmp.cc b/gcc/fortran/openmp.cc index 264e6e6a215..91af90c3f66 100644 --- a/gcc/fortran/openmp.cc +++ b/gcc/fortran/openmp.cc @@ -8169,7 +8169,8 @@ resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses, || code->op == EXEC_OACC_PARALLEL || code->op == EXEC_OACC_SERIAL)) check_array_not_assumed (n->sym, n->where, name); - else if (n->sym->as && n->sym->as->type == AS_ASSUMED_SIZE) + else if (list != OMP_LIST_UNIFORM + && n->sym->as && n->sym->as->type == AS_ASSUMED_SIZE) gfc_error ("Assumed size array %qs in %s clause at %L", n->sym->name, name, &n->where); if (n->sym->attr.in_namelist && !is_reduction) diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp index 89b5283cdba..808cc47c0e8 100644 --- a/gcc/testsuite/ChangeLog.omp +++ b/gcc/testsuite/ChangeLog.omp @@ -1,3 +1,10 @@ +2022-07-29 Tobias Burnus + + Backport from mainline: + 2022-07-29 Tobias Burnus + + * gfortran.dg/gomp/declare-simd-3.f90: New test. + 2022-07-29 Tobias Burnus Backport from mainline: diff --git a/gcc/testsuite/gfortran.dg/gomp/declare-simd-3.f90 b/gcc/testsuite/gfortran.dg/gomp/declare-simd-3.f90 new file mode 100644 index 00000000000..b94587ef35a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/gomp/declare-simd-3.f90 @@ -0,0 +1,30 @@ +! { dg-do compile } + +module m + implicit none (type, external) +contains + real function add(x, y, j) result(res) + !$omp declare simd(add) uniform(x, y) linear(j : 1) simdlen(4) + integer, value :: j + real, intent(in) :: x(*), y(*) + res = x(j) + y(j) + end function +end module m + +program main + use m + implicit none (type, external) + real, allocatable :: A(:), B(:), C(:) + integer :: i, N + N = 128 + A = [(3*i, i = 1, N)] + B = [(7*i, i = 1, N)] + allocate (C(N)) + + !$omp simd + do i = 1, N + C(i) = add(A, B, i) + end do + + if (any (C /= [(10*i, i = 1, N)])) error stop +end program main