Hi,

a recently introduced range check not only kills
legacy code that I use, but also gives a misleading
error message:

% cat gfcbug42.f
      INTEGER IBALL(4)
      DATA IBALL / Z'FF'        ,
     +             Z'FFFF'      ,
     +             Z'FFFFFF'    ,
     +             Z'FFFFFFFF'  /
      END
% gfortran -c -std=legacy gfcbug42.f
 In file gfcbug42.f:5

     +             Z'FFFFFFFF'  /                                       
                             1
Error: Arithmetic overflow converting INTEGER(8) to INTEGER(4) at (1)


Funny, I even do not see any 8 byte integer around...
-ha


-- 
           Summary: Overflow check in DATA statements
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: anlauf at gmx dot de
  GCC host triplet: i686-pc-linux-gnu


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

Reply via email to