> 
> Why is the behavior only undefined for step 1 if the last iteration IV
> increment overflows?
> Doesn't this apply to all step values?

This is what Fortran standard says:

  The iteration count is established and is the value of the expression 
(m2-m1+m3)/m3 unless that value is negative,
  in which case the iteration count is 0.

My reading of this is that the do statement is undefined whenever the 
expression above is undefined
(m1 is lower bound, m2 is upper bound, m3 is step) and because I think the 
evaulation order of
m2-m1+m3 is not fixed, I think the statement is not defined whethever (m2-m1), 
(m1+m3) or (m2-m1)+m3
overflows or underflows as signed integer.

For example it is not valid to iterate from -10 to INT_MAX with step 1.
Honza

Reply via email to