aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-io.c
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2008-04-07 22:07:44 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2008-04-07 22:07:44 +0000
commitd06b3496f60fba03f0a742f9adfc0a6174f3f60d (patch)
treed0c78839eaa0e8d575e625941f9f193f1bc826a6 /gcc/fortran/trans-io.c
parent931149a6b763268df6377a2951927b2db4e4e350 (diff)
downloadgcc-d06b3496f60fba03f0a742f9adfc0a6174f3f60d.zip
gcc-d06b3496f60fba03f0a742f9adfc0a6174f3f60d.tar.gz
gcc-d06b3496f60fba03f0a742f9adfc0a6174f3f60d.tar.bz2
PR fortran/25829 28655
2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/25829 28655 * io.c (io_tag): Add new tags for decimal, encoding, asynchronous, round, sign, and id. (match_open_element): Match new tags. (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding for DEFAULT only. Update error messages. (match_dt_element): Fix match tag for asynchronous. Update error messages. (gfc_free_inquire): Free new expressions. (match_inquire_element): Match new tags. (gfc_match_inquire): Add constraint for ID and PENDING. (gfc_resolve_inquire): Resolve new tags. * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of mask for ID parameter. * ioparm.def: Fix order of parameters for pending, round, and sign. NOTE: These must line up with the definitions in libgfortran/io/io.h. or things don't work. From-SVN: r133989
Diffstat (limited to 'gcc/fortran/trans-io.c')
-rw-r--r--gcc/fortran/trans-io.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index 6bc41e1..6316a42 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -1238,6 +1238,10 @@ gfc_trans_inquire (gfc_code * code)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_blank,
p->blank);
+ if (p->delim)
+ mask |= set_string (&block, &post_block, var, IOPARM_inquire_delim,
+ p->delim);
+
if (p->position)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_position,
p->position);
@@ -1258,14 +1262,10 @@ gfc_trans_inquire (gfc_code * code)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_readwrite,
p->readwrite);
- if (p->delim)
- mask |= set_string (&block, &post_block, var, IOPARM_inquire_delim,
- p->delim);
-
if (p->pad)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_pad,
p->pad);
-
+
if (p->convert)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_convert,
p->convert);
@@ -1304,7 +1304,8 @@ gfc_trans_inquire (gfc_code * code)
p->size);
if (p->id)
- mask2 |= set_parameter_value (&block, var, IOPARM_inquire_id, p->id);
+ mask2 |= set_parameter_ref (&block, &post_block,var, IOPARM_inquire_id,
+ p->id);
set_parameter_const (&block, var, IOPARM_inquire_flags2, mask2);