]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/ChangeLog
Fix PR72715 "ICE in gfc_trans_omp_do, at fortran/trans-openmp.c:3164"
authortschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 Feb 2019 13:44:19 +0000 (13:44 +0000)
committertschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 Feb 2019 13:44:19 +0000 (13:44 +0000)
commitdac1fbf62c5293c4b6b2788a6d9677c73088df5d
tree9a9ef5fd502c9bb9ce68499efcf2d9ea02c48f1e
parent71fe24c613cdae7569500b1f6b7f3178dcd292b3
Fix PR72715 "ICE in gfc_trans_omp_do, at fortran/trans-openmp.c:3164"

The OpenACC 'resolve_oacc_nested_loops' function duplicates most code of the
OpenMP 'resolve_omp_do', but didn't include the PR60127 "ICE with OpenMP and DO
CONCURRENT" (trunk r210331) changes.  (Probably the two functions should be
unified?)

The Fortran DO CONCURRENT construct is a way to tell the compiler that loop
iterations don't have any interdependencies -- which is information that would
very well be suitable for OpenACC/OpenMP loops.  There are some "details"
however, see the discussion/references in PR60127, so for the time being, make
this a compile-time error instead of an ICE.

gcc/fortran/
* openmp.c (resolve_oacc_nested_loops): Error on do concurrent
loops.

gcc/testsuite/
* gfortran.dg/goacc/loop-3-2.f95: Error on do concurrent loops.
* gfortran.dg/goacc/loop-3.f95: Likewise.
* gfortran.dg/goacc/pr72715.f90: New test.

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268875 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/fortran/ChangeLog
gcc/fortran/openmp.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/goacc/loop-3-2.f95
gcc/testsuite/gfortran.dg/goacc/loop-3.f95
gcc/testsuite/gfortran.dg/goacc/pr72715.f90 [new file with mode: 0644]