------- Comment #2 from rguenth at gcc dot gnu dot org  2009-12-11 11:49 -------
Confirmed.  Fails everywhere.

The issue is that flag_complex_method is not the same in lto1 compared to cc1
so we lower the complex multiplication differently.

The specific issue is that we fold

  D.2036_6 = __complex__ ( Inf, 0.0) * __complex__ (0.0, 1.0e+0);
  D.2035_7 = D.2036_6 * D.2036_6;

to

  D.2036_6 = COMPLEX_EXPR < Nan,  Inf>;
  D.2035_7 = COMPLEX_EXPR < Nan,  Nan>;

with -fcx-fortran-rules (flag_complex_method == 1).

So the particular issue is a middle-end one while the general
flag_complex_method issue remains.  In the end we need to move
flag_complex_method into the IL just like flag_wrapv.

I'm going to try fix the testcase at least.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-12-11 11:49:25
               date|                            |


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

Reply via email to