aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/io.c
diff options
context:
space:
mode:
authorFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2005-07-03 01:46:12 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2005-07-03 01:46:12 +0000
commit365ff3b926415e416da5fc0ab9b31a17ec52275f (patch)
tree2f66e3638119d70e199dc4b0264c88ca5e8fb713 /gcc/fortran/io.c
parent7f3b2bdaaffb46e225d7652507df297bcbf3b647 (diff)
downloadgcc-365ff3b926415e416da5fc0ab9b31a17ec52275f.zip
gcc-365ff3b926415e416da5fc0ab9b31a17ec52275f.tar.gz
gcc-365ff3b926415e416da5fc0ab9b31a17ec52275f.tar.bz2
re PR fortran/20842 (can't use 'END=' in output statement)
PR fortran/20842 * io.c (match_dt_element): Do not allow END tag in PRINT or WRITE statement. * gfortran.dg/io_invalid_1.f90: New test. From-SVN: r101545
Diffstat (limited to 'gcc/fortran/io.c')
-rw-r--r--gcc/fortran/io.c9
1 files changed, 8 insertions, 1 deletions
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;