diff options
author | Tobias Burnus <burnus@net-b.de> | 2006-10-28 23:05:42 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2006-10-28 23:05:42 +0200 |
commit | 751748ff5a9115f6887b2e211c1499b9200eb436 (patch) | |
tree | f2dff1cbc5c6da8906e4f3fcf2580a4a5de87dc0 | |
parent | 4e9100638e0e96826dbe51a32c6f45eef54c1630 (diff) | |
download | gcc-751748ff5a9115f6887b2e211c1499b9200eb436.zip gcc-751748ff5a9115f6887b2e211c1499b9200eb436.tar.gz gcc-751748ff5a9115f6887b2e211c1499b9200eb436.tar.bz2 |
re PR fortran/29625 (Octal edit descriptors allow real variables, even with -std=f95)
2006-10-28 Tobias Burnus <burnus@net-b.de>
PR fortran/29625
* io/transfer.c (formatted_transfer_scalar): Allow binary edit
descriptors for real variables; give error for BOZ edit
descriptor for non-integers when using -std=f*.
From-SVN: r118111
-rw-r--r-- | libgfortran/ChangeLog | 7 | ||||
-rw-r--r-- | libgfortran/io/transfer.c | 14 |
2 files changed, 19 insertions, 2 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index fc9aeea..d73d188 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2006-10-28 Tobias Burnus <burnus@net-b.de> + + PR fortran/29625 + * io/transfer.c (formatted_transfer_scalar): Allow binary edit + descriptors for real variables; give error for BOZ edit + descriptor for non-integers when using -std=f*. + 2006-10-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/29563 diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index aacf4a3..46fae1b 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -844,7 +844,9 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len, case FMT_B: if (n == 0) goto need_data; - if (require_type (dtp, BT_INTEGER, type, f)) + + if (compile_options.allow_std < GFC_STD_GNU + && require_type (dtp, BT_INTEGER, type, f)) return; if (dtp->u.p.mode == READING) @@ -856,7 +858,11 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len, case FMT_O: if (n == 0) - goto need_data; + goto need_data; + + if (compile_options.allow_std < GFC_STD_GNU + && require_type (dtp, BT_INTEGER, type, f)) + return; if (dtp->u.p.mode == READING) read_radix (dtp, f, p, len, 8); @@ -869,6 +875,10 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len, if (n == 0) goto need_data; + if (compile_options.allow_std < GFC_STD_GNU + && require_type (dtp, BT_INTEGER, type, f)) + return; + if (dtp->u.p.mode == READING) read_radix (dtp, f, p, len, 16); else |