This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Regressions with [patch, libgfortran] PR35132, PR34954, and PR34974
- From: Hans-Peter Nilsson <hp at bitrange dot com>
- To: Jerry DeLisle <jvdelisle at verizon dot net>
- Cc: Fortran List <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 21 Feb 2008 01:56:11 -0500 (EST)
- Subject: Regressions with [patch, libgfortran] PR35132, PR34954, and PR34974
- References: <47BBBC49.2090502@verizon.net>
On Tue, 19 Feb 2008, Jerry DeLisle wrote:
> The attached patch combines the fixes for each of these bugs. They have been
> accumulating waiting for 4.4 to open and are all simple and in the same file.
> Normally I would not clump these in one submittal, but it saves me time.
But may cause headaches at reghunts for others.
(Not sure it would have mattered in this case, though.)
> I have attached test cases where practical:
>
> PR35132: Test streamio_15.f90 verifies the proper truncating of formatted
> STREAM I/O.
>
> PR34974: Test fmt_t_7.f checks that 'a' and 'b' are in the correct file
> position and there are no null bytes in between.
>
> PR34954: This is a valgrind error, no test case.
>
> Regression tested on x86-64 linux.
>
> OK for trunk?
>
> Jerry
>
>
> 2008-02-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
>
> PR libfortran/35132
> * io/transfer.c (next_record_w): Truncate after the last record for
> STREAM I/O.
>
> PR libfortran/34954
> * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
>
> PR libfortran/34974
> * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
> is less than zero. (next_record_w): Use sseek to position the file to
> the max position reached.
A change on trunk in the range 132503:132513, which seems to
only match this patch, caused these regressions and failures for
cris-elf:
Running /tmp/hpautotest-gcc/gcc/gcc/testsuite/gfortran.dg/dg.exp ...
...
FAIL: gfortran.dg/streamio_11.f90 -O0 execution test
FAIL: gfortran.dg/streamio_11.f90 -O1 execution test
FAIL: gfortran.dg/streamio_11.f90 -O2 execution test
FAIL: gfortran.dg/streamio_11.f90 -O3 -fomit-frame-pointer execution test
FAIL: gfortran.dg/streamio_11.f90 -O3 -fomit-frame-pointer -funroll-loops execution test
FAIL: gfortran.dg/streamio_11.f90 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions execution test
FAIL: gfortran.dg/streamio_11.f90 -O3 -g execution test
FAIL: gfortran.dg/streamio_11.f90 -Os execution test
FAIL: gfortran.dg/streamio_15.f90 -O0 execution test
FAIL: gfortran.dg/streamio_15.f90 -O1 execution test
FAIL: gfortran.dg/streamio_15.f90 -O2 execution test
FAIL: gfortran.dg/streamio_15.f90 -O3 -fomit-frame-pointer execution test
FAIL: gfortran.dg/streamio_15.f90 -O3 -fomit-frame-pointer -funroll-loops execution test
FAIL: gfortran.dg/streamio_15.f90 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions execution test
FAIL: gfortran.dg/streamio_15.f90 -O3 -g execution test
FAIL: gfortran.dg/streamio_15.f90 -Os execution test
FAIL: gfortran.dg/streamio_3.f90 -O0 execution test
FAIL: gfortran.dg/streamio_3.f90 -O1 execution test
FAIL: gfortran.dg/streamio_3.f90 -O2 execution test
FAIL: gfortran.dg/streamio_3.f90 -O3 -fomit-frame-pointer execution test
FAIL: gfortran.dg/streamio_3.f90 -O3 -fomit-frame-pointer -funroll-loops execution test
FAIL: gfortran.dg/streamio_3.f90 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions execution test
FAIL: gfortran.dg/streamio_3.f90 -O3 -g execution test
FAIL: gfortran.dg/streamio_3.f90 -Os execution test
FAIL: gfortran.dg/streamio_4.f90 -O0 execution test
FAIL: gfortran.dg/streamio_4.f90 -O1 execution test
FAIL: gfortran.dg/streamio_4.f90 -O2 execution test
FAIL: gfortran.dg/streamio_4.f90 -O3 -fomit-frame-pointer execution test
FAIL: gfortran.dg/streamio_4.f90 -O3 -fomit-frame-pointer -funroll-loops execution test
FAIL: gfortran.dg/streamio_4.f90 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions execution test
FAIL: gfortran.dg/streamio_4.f90 -O3 -g execution test
FAIL: gfortran.dg/streamio_4.f90 -Os execution test
(Being a new test, the streamio_15.f90 isn't a regression, but
it didn't seem useful to separate it.)
For all these, the message in gfortran.log is just:
program stopped with signal 6.^M
meaning a call to abort.
Of all the streamio_N tests, these are the only ones that fail.
I'll have a brief look at a simulator trace. I'll open a PR
unless this can be resolved quickly.
brgds, H-P