diff options
author | Francois-Xavier Coudert <coudert@clipper.ens.fr> | 2006-11-18 13:16:42 +0100 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2006-11-18 12:16:42 +0000 |
commit | 7b66643229dfc1d2a19bd163654ae277de55a1fa (patch) | |
tree | 9a458c66673ecdbab3ec6ad2f05db2853c3af4e8 | |
parent | ea574900677516430562377cd7c66cb42e55bfad (diff) | |
download | gcc-7b66643229dfc1d2a19bd163654ae277de55a1fa.zip gcc-7b66643229dfc1d2a19bd163654ae277de55a1fa.tar.gz gcc-7b66643229dfc1d2a19bd163654ae277de55a1fa.tar.bz2 |
re PR fortran/24285 ([4.2 only] format(1000(a,$)))
PR fortran/24285
* io.c (check_format): Allow dollars everywhere in format, and
issue a warning.
* gfortran.dg/dollar_edit_descriptor-3.f: New test.
From-SVN: r118971
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/io.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f | 8 |
4 files changed, 23 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2815395..dc4cab9 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2006-11-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/24285 + * io.c (check_format): Allow dollars everywhere in format, and + issue a warning. + 2006-11-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> * gfortran.h (gfc_add_intrinsic_modules_path, diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c index 24a9209..adf274e 100644 --- a/gcc/fortran/io.c +++ b/gcc/fortran/io.c @@ -510,8 +510,8 @@ format_item_1: return FAILURE; if (t != FMT_RPAREN || level > 0) { - error = _("$ must be the last specifier"); - goto syntax; + gfc_warning ("$ should be the last specifier in format at %C"); + goto optional_comma_1; } goto finished; @@ -755,8 +755,9 @@ between_desc: optional_comma: /* Optional comma is a weird between state where we've just finished - reading a colon, slash or P descriptor. */ + reading a colon, slash, dollar or P descriptor. */ t = format_lex (); +optional_comma_1: switch (t) { case FMT_COMMA: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 02089e5..2eff1c8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ -2006-11-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> +2006-11-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/24285 + * gfortran.dg/dollar_edit_descriptor-3.f: New test. +2006-11-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> * gfortran.dg/use_1.f90: New test. * gfortran.dg/use_1.f90: New test. * gfortran.dg/use_1.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f b/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f new file mode 100644 index 0000000..6e5bf689 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f @@ -0,0 +1,8 @@ +! { dg-do run } +! { dg-options "-std=gnu" } +! Test for dollar descriptor in the middle of a format +300 format(1000(a,$)) ! { dg-warning "should be the last specifier" } + write(*,300) "gee", "gee" + write(*,"(1000(a,$))") "foo", "bar" ! { dg-warning "should be the last specifier" } + end +! { dg-output "^geegeefoobar$" } |