diff options
author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-15 16:20:18 +0000 |
---|---|---|
committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-15 16:20:18 +0000 |
commit | 7a777e4323f857890639c919126ab49ccd482e68 (patch) | |
tree | 21cefbeb280a023f07695694e5881ebc038308be /gcc/fortran/trans-decl.c | |
parent | 55df8a28b5f5c529bfdb479ff8ef4294d19a297c (diff) | |
download | gcc-7a777e4323f857890639c919126ab49ccd482e68.tar.gz |
2011-05-15 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
actual argument is not an array; rank mismatch is diagnosted later.
* trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars):
* Handle
scalar coarrays.
* trans-types.c (gfc_get_array_type_bounds): Ditto.
2011-05-15 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/coarray/image_index_2.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173772 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r-- | gcc/fortran/trans-decl.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index f0138b0076c..d77148400f9 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -1228,7 +1228,8 @@ gfc_get_symbol_decl (gfc_symbol * sym) } /* Use a copy of the descriptor for dummy arrays. */ - if (sym->attr.dimension && !TREE_USED (sym->backend_decl)) + if ((sym->attr.dimension || sym->attr.codimension) + && !TREE_USED (sym->backend_decl)) { decl = gfc_build_dummy_array_decl (sym, sym->backend_decl); /* Prevent the dummy from being detected as unused if it is copied. */ @@ -1316,7 +1317,7 @@ gfc_get_symbol_decl (gfc_symbol * sym) DECL_IGNORED_P (decl) = 1; } - if (sym->attr.dimension) + if (sym->attr.dimension || sym->attr.codimension) { /* Create variables to hold the non-constant bits of array info. */ gfc_build_qualified_array (decl, sym); @@ -3435,7 +3436,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) if (sym->assoc) continue; - if (sym->attr.dimension) + if (sym->attr.dimension || sym->attr.codimension) { switch (sym->as->type) { |