2013-07-08 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Jul 2013 16:13:57 +0000 (16:13 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Jul 2013 16:13:57 +0000 (16:13 +0000)
        PR fortran/50554
        * io.c (match_inquire_element): Add missing do-var check.

2013-07-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50554
        * gfortran.dg/do_check_9.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200790 138bc75d-0d04-0410-961f-82ee72b054a4

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

index f6bc080..6cbfdae 100644 (file)
@@ -1,5 +1,10 @@
 2013-07-08  Tobias Burnus  <burnus@net-b.de>
 
+       PR fortran/50554
+       * io.c (match_inquire_element): Add missing do-var check.
+
+2013-07-08  Tobias Burnus  <burnus@net-b.de>
+
        PR fortran/57785
        * simplify.c (compute_dot_product): Complex conjugate for
        dot_product.
index c5120dd..678bc5d 100644 (file)
@@ -3890,12 +3890,12 @@ match_inquire_element (gfc_inquire *inquire)
   RETM m = match_vtag (&tag_s_async, &inquire->asynchronous);
   RETM m = match_vtag (&tag_s_delim, &inquire->delim);
   RETM m = match_vtag (&tag_s_decimal, &inquire->decimal);
-  RETM m = match_vtag (&tag_size, &inquire->size);
+  RETM m = match_out_tag (&tag_size, &inquire->size);
   RETM m = match_vtag (&tag_s_encoding, &inquire->encoding);
   RETM m = match_vtag (&tag_s_round, &inquire->round);
   RETM m = match_vtag (&tag_s_sign, &inquire->sign);
   RETM m = match_vtag (&tag_s_pad, &inquire->pad);
-  RETM m = match_vtag (&tag_iolength, &inquire->iolength);
+  RETM m = match_out_tag (&tag_iolength, &inquire->iolength);
   RETM m = match_vtag (&tag_convert, &inquire->convert);
   RETM m = match_out_tag (&tag_strm_out, &inquire->strm_pos);
   RETM m = match_vtag (&tag_pending, &inquire->pending);
index f7f4d97..a6291f1 100644 (file)
@@ -1,5 +1,10 @@
 2013-07-08  Tobias Burnus  <burnus@net-b.de>
 
+       PR fortran/50554
+       * gfortran.dg/do_check_9.f90: New.
+
+2013-07-08  Tobias Burnus  <burnus@net-b.de>
+
        PR fortran/57785
        * gfortran.dg/dot_product_2.f90: New.
 
diff --git a/gcc/testsuite/gfortran.dg/do_check_9.f90 b/gcc/testsuite/gfortran.dg/do_check_9.f90
new file mode 100644 (file)
index 0000000..9cc133b
--- /dev/null
@@ -0,0 +1,14 @@
+! { dg-do compile }
+!
+! PR fortran/50554
+!
+! Contributed by Vittorio Zecca
+!
+! INQUIRE cannot redefine DO index
+!
+      do I=1,10 ! { dg-error "cannot be redefined inside loop beginning at" }
+       inquire(iolength=I) n ! { dg-error "cannot be redefined inside loop beginning at" }
+       inquire(99,size=I) ! { dg-error "cannot be redefined inside loop beginning at" }
+       read(99,'(i4)',size=I,advance="no") n ! { dg-error "cannot be redefined inside loop beginning at" }
+      end do
+      end