mirror of git://gcc.gnu.org/git/gcc.git
re PR libfortran/38097 (I/O with blanks in exponent fails; blank="NULL", BN edit descriptor)
2008-11-16 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/38097 * io/read.c (read_f): Initialize exponent. Fix comment. Set loop conditions for BZ/BN. * io/unit.c (get_internal_unit): Initialize flags.blank. * io/transfer.c (data_transfer_init): Fix whitespace. From-SVN: r141919
This commit is contained in:
parent
459348d41e
commit
264a5255d8
|
|
@ -1,3 +1,11 @@
|
||||||
|
2008-11-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR libfortran/38097
|
||||||
|
* io/read.c (read_f): Initialize exponent. Fix comment. Set loop
|
||||||
|
conditions for BZ/BN.
|
||||||
|
* io/unit.c (get_internal_unit): Initialize flags.blank.
|
||||||
|
* io/transfer.c (data_transfer_init): Fix whitespace.
|
||||||
|
|
||||||
2008-11-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
2008-11-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
PR libfortran/37294
|
PR libfortran/37294
|
||||||
|
|
|
||||||
|
|
@ -956,14 +956,9 @@ read_f (st_parameter_dt *dtp, const fnode *f, char *dest, int length)
|
||||||
of the exponent in order to take account of the scale factor and
|
of the exponent in order to take account of the scale factor and
|
||||||
the d parameter before explict conversion takes place. */
|
the d parameter before explict conversion takes place. */
|
||||||
exp2:
|
exp2:
|
||||||
if (!isdigit (*p))
|
/* Normal processing of exponent */
|
||||||
goto bad_float;
|
exponent = 0;
|
||||||
|
if (dtp->u.p.blank_status == BLANK_UNSPECIFIED)
|
||||||
exponent = *p - '0';
|
|
||||||
p++;
|
|
||||||
w--;
|
|
||||||
|
|
||||||
if (dtp->u.p.blank_status == BLANK_UNSPECIFIED) /* Normal processing of exponent */
|
|
||||||
{
|
{
|
||||||
while (w > 0 && isdigit (*p))
|
while (w > 0 && isdigit (*p))
|
||||||
{
|
{
|
||||||
|
|
@ -984,7 +979,7 @@ read_f (st_parameter_dt *dtp, const fnode *f, char *dest, int length)
|
||||||
}
|
}
|
||||||
else /* BZ or BN status is enabled */
|
else /* BZ or BN status is enabled */
|
||||||
{
|
{
|
||||||
while (w > 0)
|
while (w > 0 && (isdigit (*p) || *p == ' '))
|
||||||
{
|
{
|
||||||
if (*p == ' ')
|
if (*p == ' ')
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -437,6 +437,7 @@ get_internal_unit (st_parameter_dt *dtp)
|
||||||
|
|
||||||
iunit->flags.access = ACCESS_SEQUENTIAL;
|
iunit->flags.access = ACCESS_SEQUENTIAL;
|
||||||
iunit->flags.action = ACTION_READWRITE;
|
iunit->flags.action = ACTION_READWRITE;
|
||||||
|
iunit->flags.blank = BLANK_UNSPECIFIED;
|
||||||
iunit->flags.form = FORM_FORMATTED;
|
iunit->flags.form = FORM_FORMATTED;
|
||||||
iunit->flags.pad = PAD_YES;
|
iunit->flags.pad = PAD_YES;
|
||||||
iunit->flags.status = STATUS_UNSPECIFIED;
|
iunit->flags.status = STATUS_UNSPECIFIED;
|
||||||
|
|
@ -448,7 +449,6 @@ get_internal_unit (st_parameter_dt *dtp)
|
||||||
/* Initialize the data transfer parameters. */
|
/* Initialize the data transfer parameters. */
|
||||||
|
|
||||||
dtp->u.p.advance_status = ADVANCE_YES;
|
dtp->u.p.advance_status = ADVANCE_YES;
|
||||||
dtp->u.p.blank_status = BLANK_UNSPECIFIED;
|
|
||||||
dtp->u.p.seen_dollar = 0;
|
dtp->u.p.seen_dollar = 0;
|
||||||
dtp->u.p.skips = 0;
|
dtp->u.p.skips = 0;
|
||||||
dtp->u.p.pending_spaces = 0;
|
dtp->u.p.pending_spaces = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue