diff options
author | Tobias Burnus <burnus@gcc.gnu.org> | 2020-01-09 14:43:59 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2020-01-09 14:43:59 +0100 |
commit | 15df0040707d630b78f4dd34dd4f435026dea56c (patch) | |
tree | ac84f2732ffbf2a774089e9d524a2d23a6f8ca4d /gcc/fortran/array.c | |
parent | d574c8aafea40bd8759cb09031ff0dc6c250d8cf (diff) | |
download | gcc-15df0040707d630b78f4dd34dd4f435026dea56c.zip gcc-15df0040707d630b78f4dd34dd4f435026dea56c.tar.gz gcc-15df0040707d630b78f4dd34dd4f435026dea56c.tar.bz2 |
Fortran] PR84135 fix merging dimension into codimension array spec
PR fortran/84135
* array.c (gfc_set_array_spec): Fix shifting of codimensions
when adding a dimension.
* decl.c (merge_array_spec): Ditto. Fix using correct codimensions.
PR fortran/84135
* gfortran.dg/coarray/codimension_3.f90: New.
From-SVN: r280046
Diffstat (limited to 'gcc/fortran/array.c')
-rw-r--r-- | gcc/fortran/array.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c index e5b4ad7..157acb8 100644 --- a/gcc/fortran/array.c +++ b/gcc/fortran/array.c @@ -887,7 +887,7 @@ gfc_set_array_spec (gfc_symbol *sym, gfc_array_spec *as, locus *error_loc) if (sym->as->rank + sym->as->corank > GFC_MAX_DIMENSIONS) goto too_many; - for (i = 0; i < sym->as->corank; i++) + for (i = sym->as->corank - 1; i >= 0; i--) { sym->as->lower[as->rank + i] = sym->as->lower[i]; sym->as->upper[as->rank + i] = sym->as->upper[i]; |