diff options
author | kargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-08-07 22:56:19 +0000 |
---|---|---|
committer | kargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-08-07 22:56:19 +0000 |
commit | 6c306f90a96af99319dd14db3ec40db0b6e1a5bc (patch) | |
tree | 776ab9ca4e6e1d2bbc7e4ac4d9e56a25dc86106e /gcc/fortran/io.c | |
parent | 75ac84a79eeeac52f7fd36a8f39ed97f9f535db9 (diff) | |
download | gcc-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.c | 16 |
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 *********************/ |