aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/io.c18
2 files changed, 19 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0fed3d2..7f53a8e 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/38425
+ * io.c (check_io_constraints): Check constraints on REC=, POS=, and
+ internal unit with POS=. Fix punctuation on a few error messages.
+
2008-12-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/38415
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index 97f304b..98112fc 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -2931,6 +2931,10 @@ if (condition) \
io_constraint (dt->rec != NULL,
"REC tag at %L is incompatible with internal file",
&dt->rec->where);
+
+ io_constraint (dt->pos != NULL,
+ "POS tag at %L is incompatible with internal file",
+ &dt->pos->where);
io_constraint (unformatted,
"Unformatted I/O not allowed with internal unit at %L",
@@ -3169,7 +3173,7 @@ if (condition) \
io_constraint (dt->format_expr,
"IO spec-list cannot contain both NAMELIST group name "
- "and format specification at %L.",
+ "and format specification at %L",
&dt->format_expr->where);
io_constraint (dt->format_label,
@@ -3178,22 +3182,26 @@ if (condition) \
io_constraint (dt->rec,
"NAMELIST IO is not allowed with a REC= specifier "
- "at %L.", &dt->rec->where);
+ "at %L", &dt->rec->where);
io_constraint (dt->advance,
"NAMELIST IO is not allowed with a ADVANCE= specifier "
- "at %L.", &dt->advance->where);
+ "at %L", &dt->advance->where);
}
if (dt->rec)
{
io_constraint (dt->end,
"An END tag is not allowed with a "
- "REC= specifier at %L.", &dt->end_where);
+ "REC= specifier at %L", &dt->end_where);
io_constraint (dt->format_label == &format_asterisk,
"FMT=* is not allowed with a REC= specifier "
- "at %L.", spec_end);
+ "at %L", spec_end);
+
+ io_constraint (dt->pos,
+ "POS= is not allowed with REC= specifier "
+ "at %L", &dt->pos->where);
}
if (dt->advance)