re PR fortran/33232 (Diagnose comma in "read()," and "write(),")
authorTobias Burnus <burnus@net-b.de>
Fri, 31 Aug 2007 16:01:57 +0000 (18:01 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 31 Aug 2007 16:01:57 +0000 (18:01 +0200)
2007-08-31  Tobias Burnus  <burnus@net-b.de>

PR fortran/33232
* io.c (match_io): Also diagnose extra comma for READ.

2007-08-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33232
* gfortran.dg/eor_handling_2.f90: Add dg-warnings.
* gfortran.dg/read_1.f90: New.

From-SVN: r127997

gcc/fortran/ChangeLog
gcc/fortran/io.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/eor_handling_2.f90
gcc/testsuite/gfortran.dg/read_1.f90 [new file with mode: 0644]

index 629859f04a95b6d51c1a501d332b740580671476..9e8abeae12548215f3f032095627ef693d5ae6ad 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-31  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/33232
+       * io.c (match_io): Also diagnose extra comma for READ.
+
 2007-08-31  Joseph Myers  <joseph@codesourcery.com>
 
        * intrinsic.texi (LGAMMA): Remove empty @cindex line.
index ef1b88e5d77f61dfc1eb48790d8f048782d415f6..1ecea88eb18143ce50baf4876a27c60c478cd2e7 100644 (file)
@@ -2975,9 +2975,8 @@ get_io_list:
   /* Optional leading comma (non-standard).  */
   if (!comma_flag
       && gfc_match_char (',') == MATCH_YES
-      && k == M_WRITE
-      && gfc_notify_std (GFC_STD_GNU, "Extension: Comma before output "
-                        "item list at %C is an extension") == FAILURE)
+      && gfc_notify_std (GFC_STD_GNU, "Extension: Comma before i/o "
+                        "item list at %C") == FAILURE)
     return MATCH_ERROR;
 
   io_code = NULL;
index 82d3f3a31e50e587be451c8c6935d0b66e55ecdf..ea3bd82291478bb88e88d2b59204a9c39ae2983e 100644 (file)
@@ -1,3 +1,9 @@
+2007-08-31  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/33232
+       * gfortran.dg/eor_handling_2.f90: Add dg-warnings.
+       * gfortran.dg/read_1.f90: New.
+
 2007-08-31  Paolo Carlini  <pcarlini@suse.de>
 
        PR c++/33210
index 5eb62f8a894b40515634ace5795b026f7e575da2..9ae563846957743cf78b7d52b25ecd1e2fb13e61 100644 (file)
@@ -4,10 +4,10 @@
 program main
   character(len=1) c1(10),c2(10)
   open(77,status='scratch')
-  write(77,'(A)') 'Line 1','Line 2','Line 3'
+  write(77,'(A)'), 'Line 1','Line 2','Line 3' ! { dg-warning "Comma before i/o item list" }
   rewind(77)
-  read(77,'(10A1)'), c1
-  read(77,'(10A1)'), c2
+  read(77,'(10A1)'), c1 ! { dg-warning "Comma before i/o item list" }
+  read(77,'(10A1)'), c2 ! { dg-warning "Comma before i/o item list" }
   if (c1(1) /= 'L' .or. c2(1) /= 'L') call abort
   close(77)
 end program main
diff --git a/gcc/testsuite/gfortran.dg/read_1.f90 b/gcc/testsuite/gfortran.dg/read_1.f90
new file mode 100644 (file)
index 0000000..27f2a11
--- /dev/null
@@ -0,0 +1,9 @@
+! { dg-do compile }
+!
+! Cf. PR fortran/33232
+program test
+  implicit none
+  integer :: a
+  READ *, a
+  READ '(i3)', a
+end program test