re PR fortran/13257 ([4.0 only] Error instead of warning for missing comma in format string)

PR fortran/13257

fortran/ChangeLog:
	* io.c (check_format): Allow an optional comma
	between descriptors.

libgfortran/ChangeLog:
	* format.c (parse_format_list): Allow an optional comma
	between descriptors.

testsuite/ChangeLog:
	* comma_format_extension_[1234].f: New tests.

From-SVN: r97919
This commit is contained in:
Andrew Pinski 2005-04-09 18:44:07 +00:00 committed by Andrew Pinski
parent 9d30f3c190
commit 53d8a8ac22
9 changed files with 72 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2005-04-09 Andrew Pinski <pinskia@physics.uc.edu>
PR fortran/13257
* io.c (check_format): Allow an optional comma
between descriptors.
2005-04-09 Francois-Xavier Coudert <coudert@clipper.ens.fr>
* match.c (match_arithmetic_if): Remove gfc_ prefix and correct

View File

@ -433,6 +433,7 @@ check_format (void)
format_item:
/* In this state, the next thing has to be a format item. */
t = format_lex ();
format_item_1:
switch (t)
{
case FMT_POSINT:
@ -701,8 +702,10 @@ between_desc:
goto syntax;
default:
error = "Missing comma";
goto syntax;
if (gfc_notify_std (GFC_STD_GNU, "Extension: Missing comma at %C")
== FAILURE)
return FAILURE;
goto format_item_1;
}
optional_comma:

View File

@ -1,3 +1,8 @@
2005-04-09 Andrew Pinski <pinskia@physics.uc.edu>
PR fortran/13257
* comma_format_extension_[1234].f: New tests.
2005-04-09 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/tree-ssa/stdarg-1.c: New test.

View File

@ -0,0 +1,11 @@
! { dg-do compile }
! { dg-options "" }
! test that the extension for a missing comma is accepted
subroutine mysub
dimension ibar(5)
write (3,1001) ( ibar(m), m = 1, 5 )
1001 format (/5x,' ',i4' '/ )
return
end

View File

@ -0,0 +1,10 @@
! { dg-do compile }
! test that the extension for a missing comma is accepted
subroutine mysub
dimension ibar(5)
write (3,1001) ( ibar(m), m = 1, 5 )
1001 format (/5x,' ',i4' '/ ) ! { dg-warning "Missing comma" }
return
end

View File

@ -0,0 +1,16 @@
! PR libfortran/15332 and PR fortran/13257
! We used to accept this as an extension but
! did do the correct thing at runtime.
! Note the missing , before i1 in the format.
! { do-do run }
! { dg-options "" }
character*12 c
write (c,100) 0, 1
if (c .ne. 'i = 0, j = 1') call abort
write (c,100) 0
if (c .ne. 'i = 0 ') call abort
100 format ('i = 'i1,:,', j = ',i1)
end

View File

@ -0,0 +1,10 @@
! PR fortran/13257
! Note the missing , before i1 in the format.
! { do-do run }
! { dg-options "" }
character*5 c
write (c,1001) 1
if (c .ne. ' 1 ') call abort
1001 format (' ',i4' ')
end

View File

@ -1,3 +1,9 @@
2005-04-09 Andrew Pinski <pinskia@physics.uc.edu>
PR fortran/13257
* format.c (parse_format_list): Allow an optional comma
between descriptors.
2005-04-08 Eric Botcazou <ebotcazou@libertysurf.fr>
* io/backspace.c (unformatted_backspace): Do not dereference

View File

@ -452,6 +452,7 @@ parse_format_list (void)
/* Get the next format item */
format_item:
t = format_lex ();
format_item_1:
switch (t)
{
case FMT_POSINT:
@ -853,8 +854,8 @@ parse_format_list (void)
goto finished;
default:
error = "Missing comma in format";
goto finished;
/* Assume a missing comma, this is a GNU extension */
goto format_item_1;
}
/* Optional comma is a weird between state where we've just finished