diff options
author | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2018-03-07 14:18:54 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2018-03-08 09:47:02 +0000 |
commit | ac919e63e9a661f0deeffcc8fe49517fd523e894 (patch) | |
tree | 7dc14af0c974f18c09a92813bf82169defe4b8dd /gcc/fortran/resolve.c | |
parent | 27f22a4f680559ced8fc96728c5453aee135596e (diff) |
Merge branches/gcc-6-branch rev 258335 .
Change-Id: I03b5446106d0313b01799c902a8f52f92c908045
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index ef938009f75..d2d1b583535 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -506,8 +506,11 @@ resolve_formal_arglist (gfc_symbol *proc) { if (sym->as != NULL) { - gfc_error ("Argument %qs of statement function at %L must " - "be scalar", sym->name, &sym->declared_at); + /* F03:C1263 (R1238) The function-name and each dummy-arg-name + shall be specified, explicitly or implicitly, to be scalar. */ + gfc_error ("Argument '%s' of statement function '%s' at %L " + "must be scalar", sym->name, proc->name, + &proc->declared_at); continue; } @@ -8341,6 +8344,9 @@ resolve_select_type (gfc_code *code, gfc_namespace *old_ns) code->expr1->symtree->n.sym->ts = code->expr2->ts; selector_type = CLASS_DATA (code->expr2)->ts.u.derived; + if (code->expr2->rank && CLASS_DATA (code->expr1)->as) + CLASS_DATA (code->expr1)->as->rank = code->expr2->rank; + /* F2008: C803 The selector expression must not be coindexed. */ if (gfc_is_coindexed (code->expr2)) { |