[libgfortran] Change complex type letter to 'z'

Feng Wang wf_cs@yahoo.com
Sat Dec 27 14:21:00 GMT 2003


 --- Steve Kargl <sgk@troutmask.apl.washington.edu> µÄÕýÎÄ£º> On Sat, Dec 27,
2003 at 03:10:33PM +0800, Feng Wang wrote:
> >   The patch has been flooded with the integer tide. I have to pull it out
> > myself :-o How about it on earth, Paul, Steven and Toon? The advancing
> complex
> > bug fixing need this patch.
> > 
> >   r~
> >   Feng Wang
> > 
> >  --- Feng Wang <wf_cs@yahoo.com> writing??
> > > Hi, all
> > >   The front end of fortran uses 'z' as the complex type letter. But
> > > libgfortran
> > > uses 'c'and this will cause link error. This patch fixes this.
> > >   The libgfortran ChangeLog entry:
> > > 2003-12-16  Feng Wang  <fengwang@nudt.edu.cn>
> > 
> 
> Your patch, IMHO, is perfectly backwards.  Complex is 
> spelled with a "c" not a "z".
  gfc_type_letter() in intrinsic.c returnes 'z' to BT_COMPLEX. This is used by
iresolve functions to form the name of functions to call the library function.
Howerver the libgfortran use 'c' as the complex type letter. This cause to link
error.
  Does your gfortran pass the test program?

! Program to test the MATMUL intrinsic
program intrinsic_matmul
   implicit none
   integer, dimension(2, 3) :: a
   complex, dimension(3, 2) :: c
   complex, dimension(2, 2) :: z

   a = reshape((/1, 2, 2, 3, 3, 4/), (/2, 3/))
   c = reshape((/(1.0, 2.0), (2.0, 3.0), (3.0, 4.0), (4.0, 5.0), (5.0, 6.0), &
                 (6.0, 7.0)/), (/3,2/))

   z = matmul(a, c)
   if (any(z .ne. reshape((/(14.0, 20.0), (20.0, 29.0), (32.0, 38.0),&
     (47.0, 56.0)/), (/2, 2/)))) call abort
end program

> 
> -- 
> Steve 

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



More information about the Gcc-patches mailing list