aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>2006-11-18 13:16:42 +0100
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2006-11-18 12:16:42 +0000
commit7b66643229dfc1d2a19bd163654ae277de55a1fa (patch)
tree9a458c66673ecdbab3ec6ad2f05db2853c3af4e8
parentea574900677516430562377cd7c66cb42e55bfad (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/fortran/io.c7
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f8
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$" }