This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Regressions with [patch, libgfortran] PR35132, PR34954, and PR34974


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]