aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/dump-parse-tree.c
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2008-04-05 22:23:27 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2008-04-05 22:23:27 +0000
commit6f0f0b2eca1519fad9acf7369931fdf67d876260 (patch)
treec3b9d6b3dd92b1e32dc74b6b5924e2197dc1bd4e /gcc/fortran/dump-parse-tree.c
parent10256cbe95ccc432fe9f1aab3c9ccd545dc782ef (diff)
downloadgcc-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.c110
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');