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