diff options
author | Daniel Franke <franke.daniel@gmail.com> | 2010-06-10 14:25:56 -0400 |
---|---|---|
committer | Daniel Franke <dfranke@gcc.gnu.org> | 2010-06-10 14:25:56 -0400 |
commit | 84efddb2006d83cfe7d250ac4556442b98ba4bf5 (patch) | |
tree | c45163db1acd0734941abf9bd96a618ecb834a6b /gcc/fortran/interface.c | |
parent | da604ebda9226ee8cf08f7849488e201cc26fd40 (diff) | |
download | gcc-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.c | 10 |
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; } |