diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2008-04-05 22:23:27 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2008-04-05 22:23:27 +0000 |
commit | 6f0f0b2eca1519fad9acf7369931fdf67d876260 (patch) | |
tree | c3b9d6b3dd92b1e32dc74b6b5924e2197dc1bd4e /gcc/fortran/dump-parse-tree.c | |
parent | 10256cbe95ccc432fe9f1aab3c9ccd545dc782ef (diff) | |
download | gcc-6f0f0b2eca1519fad9acf7369931fdf67d876260.zip gcc-6f0f0b2eca1519fad9acf7369931fdf67d876260.tar.gz gcc-6f0f0b2eca1519fad9acf7369931fdf67d876260.tar.bz2 |
PR fortran/25829 28655
2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/25829 28655
* dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
* gfortran.h (gfc_statement): Add ST_WAIT enumerator.
(gfc_open): Add pointers for decimal, encoding, round, sign,
asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
encoding, pending, round, sign, size, id.
(gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
asynchronous, blank, decimal, delim, pad, round, sign.
(gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
* trans-stmt.h (gfc_trans_wait): New function prototype.
* trans.c (gfc_trans_code): Add case for EXEC_WAIT.
* io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
(gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
tags. (gfc_resolve_open): Remove comment around check for allowed
values and ASYNCHRONOUS, update it. Likewise for DECIMAL, ENCODING,
ROUND, and SIGN. (match_dt_element): Add matching for new tags.
(gfc_free_wait): New function. (gfc_resolve_wait): New function.
(match_wait_element): New function. (gfc_match_wait): New function.
* resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
(resolve_code): Add case for EXEC_WAIT.
* st.c (gfc_free_statement): Add case for EXEC_WAIT.
* trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
(gfc_build_io_library_fndecls): Add function declaration for st_wait.
(gfc_trans_open): Add mask bits for new I/O tags.
(gfc_trans_inquire): Add mask bits for new I/O tags.
(gfc_trans_wait): New translation function.
(build_dt): Add mask bits for new I/O tags.
* match.c (gfc_match_if) Add matcher for "wait".
* match.h (gfc_match_wait): Prototype for new function.
* ioparm.def: Add new I/O parameter definitions.
* parse.c (decode_statement): Add match for "wait" statement.
(next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.
Co-Authored-By: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
From-SVN: r133944
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r-- | gcc/fortran/dump-parse-tree.c | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index 4f4a77c..dc3ab32 100644 --- a/gcc/fortran/dump-parse-tree.c +++ b/gcc/fortran/dump-parse-tree.c @@ -1405,11 +1405,36 @@ gfc_show_code_node (int level, gfc_code *c) gfc_status (" PAD="); gfc_show_expr (open->pad); } + if (open->decimal) + { + gfc_status (" DECIMAL="); + gfc_show_expr (open->decimal); + } + if (open->encoding) + { + gfc_status (" ENCODING="); + gfc_show_expr (open->encoding); + } + if (open->round) + { + gfc_status (" ROUND="); + gfc_show_expr (open->round); + } + if (open->sign) + { + gfc_status (" SIGN="); + gfc_show_expr (open->sign); + } if (open->convert) { gfc_status (" CONVERT="); gfc_show_expr (open->convert); } + if (open->asynchronous) + { + gfc_status (" ASYNCHRONOUS="); + gfc_show_expr (open->asynchronous); + } if (open->err != NULL) gfc_status (" ERR=%d", open->err->value); @@ -1616,6 +1641,46 @@ gfc_show_code_node (int level, gfc_code *c) gfc_status (" CONVERT="); gfc_show_expr (i->convert); } + if (i->asynchronous) + { + gfc_status (" ASYNCHRONOUS="); + gfc_show_expr (i->asynchronous); + } + if (i->decimal) + { + gfc_status (" DECIMAL="); + gfc_show_expr (i->decimal); + } + if (i->encoding) + { + gfc_status (" ENCODING="); + gfc_show_expr (i->encoding); + } + if (i->pending) + { + gfc_status (" PENDING="); + gfc_show_expr (i->pending); + } + if (i->round) + { + gfc_status (" ROUND="); + gfc_show_expr (i->round); + } + if (i->sign) + { + gfc_status (" SIGN="); + gfc_show_expr (i->sign); + } + if (i->size) + { + gfc_status (" SIZE="); + gfc_show_expr (i->size); + } + if (i->id) + { + gfc_status (" ID="); + gfc_show_expr (i->id); + } if (i->err != NULL) gfc_status (" ERR=%d", i->err->value); @@ -1678,6 +1743,51 @@ gfc_show_code_node (int level, gfc_code *c) gfc_status (" ADVANCE="); gfc_show_expr (dt->advance); } + if (dt->id) + { + gfc_status (" ID="); + gfc_show_expr (dt->id); + } + if (dt->pos) + { + gfc_status (" POS="); + gfc_show_expr (dt->pos); + } + if (dt->asynchronous) + { + gfc_status (" ASYNCHRONOUS="); + gfc_show_expr (dt->asynchronous); + } + if (dt->blank) + { + gfc_status (" BLANK="); + gfc_show_expr (dt->blank); + } + if (dt->decimal) + { + gfc_status (" DECIMAL="); + gfc_show_expr (dt->decimal); + } + if (dt->delim) + { + gfc_status (" DELIM="); + gfc_show_expr (dt->delim); + } + if (dt->pad) + { + gfc_status (" PAD="); + gfc_show_expr (dt->pad); + } + if (dt->round) + { + gfc_status (" ROUND="); + gfc_show_expr (dt->round); + } + if (dt->sign) + { + gfc_status (" SIGN="); + gfc_show_expr (dt->sign); + } show_dt_code: gfc_status_char ('\n'); |