The change for bug 31399 makes the "DO" variable inconsistent after loop:
[EMAIL PROTECTED] loop-1]$ cat foo.f90 integer(kind=1) :: i integer(kind=8) :: c = 0 do i = 1, 5, 1 c = c + 1 end do print *, i if (i /= 6) call abort do i = 1, 5, 2 c = c + 1 end do print *, i if (i /= 7) call abort end [EMAIL PROTECTED] loop-1]$ /usr/gcc-4.3/bin/gfortran foo.f90 -static [EMAIL PROTECTED] loop-1]$ ./a.out 6 5 Aborted [EMAIL PROTECTED] loop-1]$ /usr/gcc-4.2/bin/gfortran foo.f90 -static [EMAIL PROTECTED] loop-1]$ ./a.out 6 7 [EMAIL PROTECTED] loop-1]$ -- Summary: [4.3 Regression] The "DO" variable isn't consistent after loop Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl at lucon dot org OtherBugsDependingO 31399 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32027