summaryrefslogtreecommitdiff
path: root/gcc/fortran/io.c
diff options
context:
space:
mode:
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2005-08-07 22:56:19 +0000
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2005-08-07 22:56:19 +0000
commit6c306f90a96af99319dd14db3ec40db0b6e1a5bc (patch)
tree776ab9ca4e6e1d2bbc7e4ac4d9e56a25dc86106e /gcc/fortran/io.c
parent75ac84a79eeeac52f7fd36a8f39ed97f9f535db9 (diff)
downloadgcc-6c306f90a96af99319dd14db3ec40db0b6e1a5bc.tar.gz
2005-08-07 Janne Blomqvist <jblomqvi@cc.hut.fi>
PR fortran/22390 * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH. * gfortran.h: Add enums for FLUSH. * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify comment appropriately. (gfc_match_flush): New function. * match.c (gfc_match_if): Add match for flush. * match.h: Add prototype. * parse.c (decode_statement): Add flush to 'f' case. (next_statement): Add case for flush. (gfc_ascii_statement): Likewise. * resolve.c (resolve_code): Add flush case. * st.c (gfc_free_statement): Add flush case. * trans-io.c: Add prototype for flush. (gfc_build_io_library_fndecls): Build fndecl for flush. (gfc_trans_flush): New function. * trans-stmt.h: Add prototype. * trans.c (gfc_trans_code): Add case for flush. 2005-08-07 Janne Blomqvist <jblomqvi@cc.hut.fi> PR fortran/22390 * io/backspace.c: File removed, contents moved to ... * io/endfile.c: Ditto. * io/rewind.c: Ditto. * io/file_pos.c: New file, ... here. * Makefile.am: Add file_pos.c to list, remove obsolete files. * Makefile.in: Regenerated. 2005-08-07 Janne Blomqvist <jblomqvi@cc.hut.fi> Steven G. Kargl <kargls@comcast.net> PR fortran/22390 * gfortran.dg/flush_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102835 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/io.c')
-rw-r--r--gcc/fortran/io.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index abfeead2f50..78899aa8453 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -1340,7 +1340,7 @@ gfc_free_filepos (gfc_filepos * fp)
}
-/* Match elements of a REWIND, BACKSPACE or ENDFILE statement. */
+/* Match elements of a REWIND, BACKSPACE, ENDFILE, or FLUSH statement. */
static match
match_file_element (gfc_filepos * fp)
@@ -1362,7 +1362,7 @@ match_file_element (gfc_filepos * fp)
/* Match the second half of the file-positioning statements, REWIND,
- BACKSPACE or ENDFILE. */
+ BACKSPACE, ENDFILE, or the FLUSH statement. */
static match
match_filepos (gfc_statement st, gfc_exec_op op)
@@ -1446,8 +1446,8 @@ gfc_resolve_filepos (gfc_filepos * fp)
}
-/* Match the file positioning statements: ENDFILE, BACKSPACE or
- REWIND. */
+/* Match the file positioning statements: ENDFILE, BACKSPACE, REWIND,
+ and the FLUSH statement. */
match
gfc_match_endfile (void)
@@ -1470,6 +1470,14 @@ gfc_match_rewind (void)
return match_filepos (ST_REWIND, EXEC_REWIND);
}
+match
+gfc_match_flush (void)
+{
+ if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: FLUSH statement at %C") == FAILURE)
+ return MATCH_ERROR;
+
+ return match_filepos (ST_FLUSH, EXEC_FLUSH);
+}
/******************** Data Transfer Statements *********************/