PR 48587 Newunit allocator, cleanup

Improve error message, and remove a redundant check, as the same check is
done a bit earlier due to the PR 48587 patch.

2016-10-16  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/48587
        * io/transfer.c (data_transfer_init): Improve error message,
        remove redundant check.

Regtested on x86_64-pc-linux-gnu.

From-SVN: r241211
This commit is contained in:
Janne Blomqvist 2016-10-16 09:28:15 +03:00
parent 4698eb35ad
commit 9937c1eb72
2 changed files with 8 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2016-10-16 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/48587
* io/transfer.c (data_transfer_init): Improve error message,
remove redundant check.
2016-10-15 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/48587

View File

@ -2606,7 +2606,8 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag)
/* This means we tried to access an external unit < 0 without
having opened it first with NEWUNIT=. */
generate_error (&dtp->common, LIBERROR_BAD_OPTION,
"Invalid unit number in statement");
"Unit number is negative and unit was not already "
"opened with OPEN(NEWUNIT=...)");
return;
}
else if (dtp->u.p.current_unit->s == NULL)
@ -2614,14 +2615,6 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag)
st_parameter_open opp;
unit_convert conv;
if (dtp->common.unit < 0 && !is_internal_unit (dtp))
{
close_unit (dtp->u.p.current_unit);
dtp->u.p.current_unit = NULL;
generate_error (&dtp->common, LIBERROR_BAD_OPTION,
"Bad unit number in statement");
return;
}
memset (&u_flags, '\0', sizeof (u_flags));
u_flags.access = ACCESS_SEQUENTIAL;
u_flags.action = ACTION_READWRITE;