From mboxrd@z Thu Jan 1 00:00:00 1970 From: hjl@lucon.org (H.J. Lu) To: rth@cygnus.com Cc: egcs@cygnus.com Subject: Re: A new alpha bug Date: Fri, 12 Sep 1997 18:25:00 -0000 Message-id: References: <199709130105.SAA01370@dot.cygnus.com> X-SW-Source: 1997-09/msg00530.html > > > complex_double (double r = 0, double i = 0): re (r), im (i) { } > [...] > > complex_double one = 1.0; > > I don't think this does what you think it does. What it doesn't > do is call the constructor listed. > > I'll leave it to those who can actually remember what the rules > concerning that equals sign are to determine if this is a bug in > the C++ front end or whether your code is wrong. > That example is taken from tcomplex.cc in libstdc++/tests. It looks ok to me. complex_double one = 1.0; should be translate by compiler to complex_double one; complex_double tmp (1.0); one = tmp; That code works on x86. From what I have seen on the egcs list, that also works on MIPS and Sparc. From what I saw in rtl, I think it may be a combination of the C++ front end alpha back end. -- H.J. Lu (hjl@gnu.ai.mit.edu)