diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-09-27 09:52:28 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-09-27 09:52:28 +0200 |
commit | f2e0c4e1ce34642b613ec2ed6cd2be83b1753849 (patch) | |
tree | d17be163d5873dd2df5a75cc7d91cd0976c4bd21 /gcc/fortran/trans-openmp.c | |
parent | 0fbac2d130600a37414c33ecf2c12c9c8945f353 (diff) | |
download | gcc-f2e0c4e1ce34642b613ec2ed6cd2be83b1753849.zip gcc-f2e0c4e1ce34642b613ec2ed6cd2be83b1753849.tar.gz gcc-f2e0c4e1ce34642b613ec2ed6cd2be83b1753849.tar.bz2 |
re PR fortran/77666 (ICE in gfc_omp_clause_default_ctor, at fortran/trans-openmp.c:471)
PR fortran/77666
* trans-openmp.c (gfc_omp_private_outer_ref): Return true even for
references to allocatable arrays.
* gfortran.dg/gomp/pr77666.f90: New test.
From-SVN: r240522
Diffstat (limited to 'gcc/fortran/trans-openmp.c')
-rw-r--r-- | gcc/fortran/trans-openmp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c index e4a2975..b8b8576 100644 --- a/gcc/fortran/trans-openmp.c +++ b/gcc/fortran/trans-openmp.c @@ -207,6 +207,9 @@ gfc_omp_private_outer_ref (tree decl) { tree type = TREE_TYPE (decl); + if (gfc_omp_privatize_by_reference (decl)) + type = TREE_TYPE (type); + if (GFC_DESCRIPTOR_TYPE_P (type) && GFC_TYPE_ARRAY_AKIND (type) == GFC_ARRAY_ALLOCATABLE) return true; @@ -214,9 +217,6 @@ gfc_omp_private_outer_ref (tree decl) if (GFC_DECL_GET_SCALAR_ALLOCATABLE (decl)) return true; - if (gfc_omp_privatize_by_reference (decl)) - type = TREE_TYPE (type); - if (gfc_has_alloc_comps (type, decl)) return true; |