diff options
-rw-r--r-- | gcc/fortran/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/fortran/io.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/io_invalid_1.f90 | 5 |
4 files changed, 29 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 55ba5ed..6750a13 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,13 +1,20 @@ +2005-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/20842 + * io.c (match_dt_element): Do not allow END tag in PRINT or + WRITE statement. + 2005-07-02 Joseph S. Myers <joseph@codesourcery.com> * lang.opt: Remove "." from end of help texts. 2005-07-01 Jerry DeLisle <jvdelisle@verizon.net> - * gfortran.texi: Fix typos and grammar. - * invoke.texi: Fix typos and grammar. - * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and exit. - Fixed alignment of text for dtime syntax. Fixed a few line lengths. + * gfortran.texi: Fix typos and grammar. + * invoke.texi: Fix typos and grammar. + * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and + exit. Fixed alignment of text for dtime syntax. Fixed a few line + lengths. 2005-06-25 Jakub Jelinek <jakub@redhat.com> diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c index c5ceb06..ef51308 100644 --- a/gcc/fortran/io.c +++ b/gcc/fortran/io.c @@ -1643,7 +1643,14 @@ match_dt_element (io_kind k, gfc_dt * dt) m = match_ltag (&tag_end, &dt->end); if (m == MATCH_YES) - dt->end_where = gfc_current_locus; + { + if (k == M_WRITE) + { + gfc_error ("END tag at %C not allowed in output statement"); + return MATCH_ERROR; + } + dt->end_where = gfc_current_locus; + } if (m != MATCH_NO) return m; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5d94b11..203bd56 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/20842 + * gfortran.dg/io_invalid_1.f90: New test. + 2005-07-03 Joseph S. Myers <joseph@codesourcery.com> * gcc.dg/format/gcc_diag-1.c: Update. diff --git a/gcc/testsuite/gfortran.dg/io_invalid_1.f90 b/gcc/testsuite/gfortran.dg/io_invalid_1.f90 new file mode 100644 index 0000000..75a528b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/io_invalid_1.f90 @@ -0,0 +1,5 @@ +! { dg-do compile } +! PR fortran/20842 +WRITE(UNIT=6,END=999) 0 ! { dg-error "END tag .* is not compatible with output" } +999 CONTINUE +END |