transfer_array_intrinsic testcase failures (take 2)
Paul Thomas
paulthomas2@wanadoo.fr
Mon Mar 27 19:04:00 GMT 2006
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
More information about the Fortran
mailing list