diff options
author | Julian Brown <julian@codesourcery.com> | 2020-06-03 14:25:19 -0700 |
---|---|---|
committer | Julian Brown <julian@codesourcery.com> | 2020-07-09 14:04:41 -0700 |
commit | ac8996edb14eef0a15cd0ce850fde2be5e227e69 (patch) | |
tree | 7890eda2999d94797e02c0dd3d78a0185b94fc83 /gcc/fortran/trans-openmp.c | |
parent | fd263be4b523ff1b7f7dda49d856cc57221e8d21 (diff) | |
download | gcc-ac8996edb14eef0a15cd0ce850fde2be5e227e69.zip gcc-ac8996edb14eef0a15cd0ce850fde2be5e227e69.tar.gz gcc-ac8996edb14eef0a15cd0ce850fde2be5e227e69.tar.bz2 |
openacc: Fortran derived-type mapping fix
Fix a bug with mapping Fortran components which themselves have derived
types in the OpenACC 2.5+ manual deep-copy support.
2020-07-09 Julian Brown <julian@codesourcery.com>
gcc/fortran/
* trans-openmp.c (gfc_trans_omp_clauses): Use 'inner' not 'decl' for
derived type members which themselves have derived types.
gcc/testsuite/
* gfortran.dg/goacc/mapping-tests-3.f90: New test.
* gfortran.dg/goacc/mapping-tests-4.f90: New test.
Diffstat (limited to 'gcc/fortran/trans-openmp.c')
-rw-r--r-- | gcc/fortran/trans-openmp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c index 22f8f96..38e141d 100644 --- a/gcc/fortran/trans-openmp.c +++ b/gcc/fortran/trans-openmp.c @@ -2774,9 +2774,9 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses, } else { - OMP_CLAUSE_DECL (node) = decl; + OMP_CLAUSE_DECL (node) = inner; OMP_CLAUSE_SIZE (node) - = TYPE_SIZE_UNIT (TREE_TYPE (decl)); + = TYPE_SIZE_UNIT (TREE_TYPE (inner)); } } else if (lastcomp->next |