* io.c (check_format): As a GNU extension, allow the comma after a
string literal to be optional in a format. Use gfc_notify_std to
issue an error/warning as appropriate.
* io/format.c (parse_format_list): Allow the comma after a string
literal to be optional.
From-SVN: r82109
+2004-05-21 Roger Sayle <roger@eyesopen.com>
+
+ * io.c (check_format): As a GNU extension, allow the comma after a
+ string literal to be optional in a format. Use gfc_notify_std to
+ issue an error/warning as appropriate.
+
2004-05-21 Roger Sayle <roger@eyesopen.com>
* io.c (check_format): Use gfc_notify_std to determine whether to
case FMT_SIGN:
case FMT_BLANK:
- case FMT_CHAR:
goto between_desc;
+ case FMT_CHAR:
+ goto extension_optional_comma;
+
case FMT_COLON:
case FMT_SLASH:
goto optional_comma;
goto format_item;
+extension_optional_comma:
+ /* As a GNU extension, permit a missing comma after a string literal. */
+ t = format_lex ();
+ switch (t)
+ {
+ case FMT_COMMA:
+ break;
+
+ case FMT_RPAREN:
+ level--;
+ if (level < 0)
+ goto finished;
+ goto between_desc;
+
+ case FMT_COLON:
+ case FMT_SLASH:
+ goto optional_comma;
+
+ case FMT_END:
+ error = unexpected_end;
+ goto syntax;
+
+ default:
+ if (gfc_notify_std (GFC_STD_GNU, "Extension: Missing comma at %C")
+ == FAILURE)
+ return FAILURE;
+ saved_token = t;
+ break;
+ }
+
+ goto format_item;
+
syntax:
/* Something went wrong. If the format we're checking is a string,
generate a warning, since the program is correct. If the format
+2004-05-21 Roger Sayle <roger@eyesopen.com>
+
+ * io/format.c (parse_format_list): Allow the comma after a string
+ literal to be optional.
+
2004-05-18 Paul Brook <paul@codesourcery.com>
Feng Wang <fengwang@nudt.edu.cn>
tail->u.string.p = string;
tail->u.string.length = value;
tail->repeat = 1;
- goto between_desc;
+ goto optional_comma;
case FMT_S:
case FMT_SS: