diff options
author | Tobias Burnus <burnus@net-b.de> | 2013-07-08 18:13:57 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2013-07-08 18:13:57 +0200 |
commit | 928675464c96e68b82c9688d24b93ac84f0ea4c2 (patch) | |
tree | cc506d310bacc8e5118e79c6b110d06ceb6cb679 /gcc | |
parent | 2cf4c39ee664e36df9b2d764534b455a8a432328 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/io.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/do_check_9.f90 | 14 |
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 |