------- Comment #1 from dfranke at gcc dot gnu dot org 2010-06-09 21:19 ------- This should work (untested). However, ASYNCHRONOUS is F2003. Should one introduce standard-specific checks? The whole function seems to be agnostic in this respect?!
Index: interface.c =================================================================== --- interface.c (revision 160504) +++ interface.c (working copy) @@ -2133,13 +2133,15 @@ compare_actual_formal (gfc_actual_arglis 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) && 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; } -- dfranke at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dfranke at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44457