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]

Re: transfer_array_intrinsic testcase failures (take 2)


Dominique,

Paul,

I think the two tests:

ch = transfer (y(2:4:2), ch)

and

ch = transfer (y(4:2:-2), ch)

fall in the category:



If the physical representation of the result is longer
than that of SOURCE, the physical representation of the leading part is
that of SOURCE and the remainder is processor dependent.



The source is two integer*4, while the length of TRANSFER is that of
ch, i.e., four character*4, then the first 8 bytes come from y while the
remaining ones are "processor dependent". Apparently gfortran takes them
from ch (and this is assumed in the test case), a non-processor dependent test case could be:


if (any (ch(1:2) .ne. (/"EFGH","MNOP"/))) call abort ()

and

if (any (ch(1:2) .ne. (/"MNOP","EFGH"/))) call abort ()



Thank you - you are right.

I think that I should withdraw the two testcases tomorrow morning and resubmit corrected versions with a patch that applies the compliance requirements. I have something partially working already - I am scratching my head over why it does not work in all circumstances but I am sure that reason will come to me.

The intrinsic function itself can remain, I think. It does the right thing with the right parameter values and is much better than no functionality at all. I will give it a very thorough looking over, though, whilst I am applying the standard correctly.


Paul



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