+2015-07-16 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/66724
+ PR fortran/66724
+ * io.c (is_char_type): Call gfc_resolve_expr ().
+ (match_open_element, match_dt_element, match_inquire_element): Fix
+ ASYNCHRONOUS case.
+
2015-07-15 Andrew MacLeod <amacleod@redhat.com>
* trans-types.c: Remove multiline #include comment.
static bool
is_char_type (const char *name, gfc_expr *e)
{
+ gfc_resolve_expr (e);
+
if (e->ts.type != BT_CHARACTER)
{
gfc_error ("%s requires a scalar-default-char-expr at %L",
match m;
m = match_etag (&tag_e_async, &open->asynchronous);
+ if (m == MATCH_YES && !is_char_type ("ASYNCHRONOUS", open->asynchronous))
+ return MATCH_ERROR;
if (m != MATCH_NO)
return m;
m = match_etag (&tag_unit, &open->unit);
}
m = match_etag (&tag_e_async, &dt->asynchronous);
+ if (m == MATCH_YES && !is_char_type ("ASYNCHRONOUS", dt->asynchronous))
+ return MATCH_ERROR;
if (m != MATCH_NO)
return m;
m = match_etag (&tag_e_blank, &dt->blank);
RETM m = match_vtag (&tag_write, &inquire->write);
RETM m = match_vtag (&tag_readwrite, &inquire->readwrite);
RETM m = match_vtag (&tag_s_async, &inquire->asynchronous);
+ if (m == MATCH_YES && !is_char_type ("ASYNCHRONOUS", inquire->asynchronous))
+ return MATCH_ERROR;
RETM m = match_vtag (&tag_s_delim, &inquire->delim);
RETM m = match_vtag (&tag_s_decimal, &inquire->decimal);
RETM m = match_out_tag (&tag_size, &inquire->size);