aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/interface.c
diff options
context:
space:
mode:
authorDaniel Franke <franke.daniel@gmail.com>2010-06-10 14:25:56 -0400
committerDaniel Franke <dfranke@gcc.gnu.org>2010-06-10 14:25:56 -0400
commit84efddb2006d83cfe7d250ac4556442b98ba4bf5 (patch)
treec45163db1acd0734941abf9bd96a618ecb834a6b /gcc/fortran/interface.c
parentda604ebda9226ee8cf08f7849488e201cc26fd40 (diff)
downloadgcc-84efddb2006d83cfe7d250ac4556442b98ba4bf5.zip
gcc-84efddb2006d83cfe7d250ac4556442b98ba4bf5.tar.gz
gcc-84efddb2006d83cfe7d250ac4556442b98ba4bf5.tar.bz2
re PR fortran/44457 (Missing ASYNCHRONOUS constraint check)
gcc/fortran/: 2010-06-10 Daniel Franke <franke.daniel@gmail.com> PR fortran/44457 * interface.c (compare_actual_formal): Reject actual arguments with array subscript passed to ASYNCHRONOUS dummys. gcc/testsuite/: 2010-06-10 Daniel Franke <franke.daniel@gmail.com> PR fortran/44457 * gfortran.dg/asynchronous_3.f03 From-SVN: r160567
Diffstat (limited to 'gcc/fortran/interface.c')
-rw-r--r--gcc/fortran/interface.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index 379c636..284622f 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -2133,13 +2133,15 @@ compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal,
if ((f->sym->attr.intent == INTENT_OUT
|| f->sym->attr.intent == INTENT_INOUT
- || f->sym->attr.volatile_)
+ || f->sym->attr.volatile_
+ || f->sym->attr.asynchronous)
&& gfc_has_vector_subscript (a->expr))
{
if (where)
- gfc_error ("Array-section actual argument with vector subscripts "
- "at %L is incompatible with INTENT(OUT), INTENT(INOUT) "
- "or VOLATILE attribute of the dummy argument '%s'",
+ gfc_error ("Array-section actual argument with vector "
+ "subscripts at %L is incompatible with INTENT(OUT), "
+ "INTENT(INOUT), VOLATILE or ASYNCHRONOUS attribute "
+ "of the dummy argument '%s'",
&a->expr->where, f->sym->name);
return 0;
}