transfer_array_intrinsic failures

Paul Thomas paulthomas2@wanadoo.fr
Sun Mar 26 20:07:00 GMT 2006


Thomas Koenig wrote:

>On Sat, Mar 25, 2006 at 04:09:35PM -0500, David Edelsohn wrote:
>  
>
>>>There isn't one - these are new tests that pass on i686 systems/Linux 
>>>and Cygwin.  Could you pass on the details, please?  I will try to deal 
>>>with it as fast as possible.
>>>      
>>>
>>	It appears to be broken on all big-endian architectures.  Pinski
>>mentioned on IRC that the problem may be the testcase and not the code
>>generation.
>>
>>	transfer_array_intrinsic_1.f90 fails on powerpc and s390.
>>transfer_array_intrinsic_2.f90 fails on powerpc-aix as well.
>>
>>	All execution failures.
>>    
>>
>
>Here's what ifort 8.0 has to say about the test cases:
>
>$ ifort transfer_array_intrinsic_1.f90
>fortcom: Error: transfer_array_intrinsic_1.f90, line 35: The shapes of the array expressions do not conform.   [CMP]
>     cmp = transfer (z, cmp, 1) * 8.0
>-----^
>fortcom: Error: transfer_array_intrinsic_1.f90, line 79: The shapes of the array expressions do not conform.   [CH]
>     ch(3:2:-1) = transfer (y, ch, 3)
>-----^
>fortcom: Error: transfer_array_intrinsic_1.f90, line 85: The shapes of the array expressions do not conform.   [CH]
>     ch(1:2) = transfer (y, ch, 3)
>-----^
>compilation aborted for transfer_array_intrinsic_1.f90 (code 1)
>$ ifort transfer_array_intrinsic_2.f90
>fortcom: Warning: transfer_array_intrinsic_2.f90, line 6: The structure length is not a multiple of its largest element; could create misalignments for arrays of this type.   [MYTYPE]
>     type mytype
>----------^
>Yes, I know - I believe that ifort is wrong on the errors and right on the warning.  The standard is quite clear that trhanfer effects a bit-wise copy that either fills the destination or exhausts the source/size combination.  From my reading of that, conformity of shapes is not required.  If I have read wrong, please let me know and I will implement a conforming version.  A an aside, whatever the standard says, it strikes me that transfer is useful for being able to do just that sort of thing; it might be dangerous but memcpy's always are.
>  
>

Paul



More information about the Fortran mailing list