------- Comment #23 from RNMcLean at yahoo dot com  2006-05-03 01:51 -------
(In reply to comment #2)
> Let me stress the importance of fixing this bug: it occurs in Basic Linear
> Algebra Subprograms (BLAS), in  program dcabs1.f:
> 
>       double precision function dcabs1(z)
>       double complex z
>       double precision t(2)
>       t=transfer(z,t)
>       dcabs1 = dabs(t(1)) + dabs(t(2))
>       return
>       end
> 


   I'm unfamiliar with Bugzilla, so if I annoy anyone, apologies.
   This routine is a puzzle, or else I have completely misunderstood it. The
TRANSFER is obviously spurious, as it merely allows the sort of renaming that
used to be possible with the deprecated EQUIVALENCE statement, were it to be
allowed for parameters.
   But, why not
      dcabs1 = abs(real(z)) + abs(aimag(z))
   relying on proper precision selection (or, supply d prefixes). 

   Of course, in general the TRANSFER function should work.
   Best wishes, RNMcLean somewhere by yahoo.com


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298

Reply via email to