aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-07-08 18:13:57 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2013-07-08 18:13:57 +0200
commit928675464c96e68b82c9688d24b93ac84f0ea4c2 (patch)
treecc506d310bacc8e5118e79c6b110d06ceb6cb679 /gcc
parent2cf4c39ee664e36df9b2d764534b455a8a432328 (diff)
downloadgcc-928675464c96e68b82c9688d24b93ac84f0ea4c2.zip
gcc-928675464c96e68b82c9688d24b93ac84f0ea4c2.tar.gz
gcc-928675464c96e68b82c9688d24b93ac84f0ea4c2.tar.bz2
re PR fortran/50554 (INQUIRE cannot redefine DO index (r178939))
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/50554 * gfortran.dg/do_check_9.f90: New. From-SVN: r200790
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/io.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/do_check_9.f9014
4 files changed, 26 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index f6bc080..6cbfdae 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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.
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index c5120dd..678bc5d 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -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);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f7f4d97..a6291f1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..9cc133b
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/do_check_9.f90
@@ -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