diff options
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/io.c | 18 |
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) |