https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125747
--- Comment #10 from Steve Kargl <kargl at gcc dot gnu.org> ---
(In reply to Jerry DeLisle from comment #9)
>
> I will make sure to take care of this while I am at it. I remember some
> history on allowing the real index, however, unclearly.
>
If one has "Do 10 i = e1, e2, e3", then in F66, i, e1, e2, and e3
were required to be integer. Oddly, F77 loosened this restriction
in 11.10:
i is the name of an integer, real, or double precision variable,
called the DO variable
e1, e2, and e3 are each an integer, real, or double precision
expression
Looking at F90, the provision to allow real and double precision is
still present except it is in the small font for obsolescent features.
In F90, these are the 2 constraints following R822.
F95 officially placed real and double precision on the deleted features
list as the first item.
Now going back in time
2004-12-12 Steven G. Kargl <[email protected]>
Paul Brook <[email protected]>
PR fortran/16222
* resolve.c (gfc_resolve_iterator_expr): New function.
(gfc_resolve_iterator): Use it. Add real_ok argument. Convert
start, end and stride to correct type.
(resolve_code): Pass extra argument.
* array.c (resolve_array_list): Pass extra argument.
* gfortran.h (gfc_resolve): Add prototype.
* trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
Handle real type iterators.
I do not recall if there was a discussion about allowing real and double
precision in FORALL or implied-do constructs.