Commit d06b3496 by Jerry DeLisle

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
parent 931149a6
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.
2008-04-06 Paul Thomas <pault@gcc.gnu.org> 2008-04-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/35780 PR fortran/35780
......
...@@ -63,9 +63,9 @@ IOPARM (inquire, flags2, 1 << 31, int4) ...@@ -63,9 +63,9 @@ IOPARM (inquire, flags2, 1 << 31, int4)
IOPARM (inquire, asynchronous, 1 << 0, char1) IOPARM (inquire, asynchronous, 1 << 0, char1)
IOPARM (inquire, decimal, 1 << 1, char2) IOPARM (inquire, decimal, 1 << 1, char2)
IOPARM (inquire, encoding, 1 << 2, char1) IOPARM (inquire, encoding, 1 << 2, char1)
IOPARM (inquire, round, 1 << 3, char2) IOPARM (inquire, pending, 1 << 3, pint4)
IOPARM (inquire, sign, 1 << 4, char1) IOPARM (inquire, round, 1 << 4, char1)
IOPARM (inquire, pending, 1 << 5, pint4) IOPARM (inquire, sign, 1 << 5, char2)
IOPARM (inquire, size, 1 << 6, pint4) IOPARM (inquire, size, 1 << 6, pint4)
IOPARM (inquire, id, 1 << 7, pint4) IOPARM (inquire, id, 1 << 7, pint4)
IOPARM (wait, common, 0, common) IOPARM (wait, common, 0, common)
......
...@@ -1238,6 +1238,10 @@ gfc_trans_inquire (gfc_code * code) ...@@ -1238,6 +1238,10 @@ gfc_trans_inquire (gfc_code * code)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_blank, mask |= set_string (&block, &post_block, var, IOPARM_inquire_blank,
p->blank); p->blank);
if (p->delim)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_delim,
p->delim);
if (p->position) if (p->position)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_position, mask |= set_string (&block, &post_block, var, IOPARM_inquire_position,
p->position); p->position);
...@@ -1258,14 +1262,10 @@ gfc_trans_inquire (gfc_code * code) ...@@ -1258,14 +1262,10 @@ gfc_trans_inquire (gfc_code * code)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_readwrite, mask |= set_string (&block, &post_block, var, IOPARM_inquire_readwrite,
p->readwrite); p->readwrite);
if (p->delim)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_delim,
p->delim);
if (p->pad) if (p->pad)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_pad, mask |= set_string (&block, &post_block, var, IOPARM_inquire_pad,
p->pad); p->pad);
if (p->convert) if (p->convert)
mask |= set_string (&block, &post_block, var, IOPARM_inquire_convert, mask |= set_string (&block, &post_block, var, IOPARM_inquire_convert,
p->convert); p->convert);
...@@ -1304,7 +1304,8 @@ gfc_trans_inquire (gfc_code * code) ...@@ -1304,7 +1304,8 @@ gfc_trans_inquire (gfc_code * code)
p->size); p->size);
if (p->id) 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); set_parameter_const (&block, var, IOPARM_inquire_flags2, mask2);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment