------- Comment #1 from fxcoudert at gcc dot gnu dot org  2007-11-21 12:25 
-------
The following (doesn't need to be compiled with -fdefault-integer-8):

  character (len=5) :: c
  integer(kind=8) :: i

  i = 3
  c(i:i) = 'a'
  if (c(i:i) /= 'a') call abort ()
end

gives the tree code below:

    integer(kind=4) D.864;
    integer(kind=4) D.863;

    D.863 = (integer(kind=4)) i;
    D.864 = (integer(kind=4)) i;
    if (_gfortran_compare_string (MAX_EXPR <(1 - D.863) + D.864, 0>,
(character(kind=1)[1:5] *) &c[D.863]{lb: 1 sz: 1}, 1, &"a"[1]{lb: 1 sz: 1}) !=
0)
        _gfortran_abort ();

We simply don't see that D.863 and D.864 are equal, due to the conversion.


-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-11-21 12:25:42
               date|                            |


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

Reply via email to