This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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]

[Patch, fortran] PR34955 - transfer_assumed_size_1.f90: Valgrind error: invalid read of size 3


Dear All,

The title of this problem describes the problem clearly.  It comes
about only for scalar character transfers where the source is shorter
than the destination.  As described in the PR, the solution is to make
a temporary, with the length of the destination and only copy the
source into it.  All this was effected by use of the mechanics evolved
for array transfers, where the different situations of source versus
destination lengths and the presence of SIZE were correctly (I hope!)
treated.  The use of packing of the source has been eliminated, except
for variables that are not full arrays.

Bootstrapped and regtested on FC9/x86_i64 - OK for 4.5 and, eventually, for 4.4?

Paul

2009-01-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34955
	* trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has
	been absorbed into gfc_conv_intrinsic_transfer. All
	references to it in trans-intrinsic.c have been changed
	accordingly.  PR fixed by using a temporary for scalar
	character transfer, when the source is shorter than the
	destination.

2009-01-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34955
	* gfortran.dg/transfer_intrinsic_1.f90: New test.

Attachment: submit.diff
Description: Binary data


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