From: sayle Date: Fri, 21 May 2004 21:37:25 +0000 (+0000) Subject: * io.c (check_format): As a GNU extension, allow the comma after a X-Git-Tag: upstream/4.9.2~71127 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=61fa81cc91924163fd83420c2dcfcedfbe23a641;p=platform%2Fupstream%2Flinaro-gcc.git * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82109 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index d91fa3d..fefaac0 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2004-05-21 Roger Sayle + * 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 + * io.c (check_format): Use gfc_notify_std to determine whether to issue an error/warning for omitting the digits from the X format. diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c index 6a31bfa..120b440 100644 --- a/gcc/fortran/io.c +++ b/gcc/fortran/io.c @@ -481,9 +481,11 @@ format_item: 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; @@ -728,6 +730,38 @@ 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 diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 7a2e993..3eedff3 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2004-05-21 Roger Sayle + + * io/format.c (parse_format_list): Allow the comma after a string + literal to be optional. + 2004-05-18 Paul Brook Feng Wang diff --git a/libgfortran/io/format.c b/libgfortran/io/format.c index 4255e29..f886f7f 100644 --- a/libgfortran/io/format.c +++ b/libgfortran/io/format.c @@ -543,7 +543,7 @@ format_item: 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: