------- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-06-04 11:24 
-------
I can reproduce this on i686-linux and reduced it to this minimal testcase:

     COMPLEX z
     CONTAINS
       SUBROUTINE foo
         z = z + cmplx(1.0,0.0)
         z = z + z
       END SUBROUTINE foo
     END

It fails for me at all optimization levels, including -O0. I've tried it with
current mainline as well as mainline from 2006-05-01, it exhibits the same
errors.

I can't make a C testcase easily, but I think it's a middle-end issue because
the same testcase compiled on 4.1.2 works, although it gives the same tree
(with -fdump-original-tree):

foo ()
{
  z = z + __complex__ (1.0e+0, 0.0);
  z = z + z;


MAIN__ ()
{
  complex4 z;
  static void foo (void);

  _gfortran_set_std (70, 127, 0);
}


-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fxcoudert at gcc dot gnu dot
                   |                            |org, stevenb dot gcc at
                   |                            |gmail dot com
             Status|UNCONFIRMED                 |NEW
          Component|fortran                     |middle-end
     Ever Confirmed|0                           |1
   GCC host triplet|powerpc-unknown-linux-gnu   |
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|0000-00-00 00:00:00         |2006-06-04 11:24:33
               date|                            |
            Summary|gfortran 4.1.1 ICE on       |ICE on complex assignment
                   |espresso (PWscf)            |


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

Reply via email to