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