Hi,
Can anyone here offer some insights regarding the standard conformance of the test program submitted at http://bugs.freepascal.org/view.php?id=24318 ? (range.p)
Both FPC and GPC cause the program to abort with a range check error, while the submitter is of the opinion that the for-loop should merely short-circuit and never executed instead.
AFAICS he is right. ISO-10206 clause 6.9.3.9.2 says:
: The initial-value and the final-value of a sequence-iteration
: of an iteration-clause of a for-statement shall be of a type
: compatible with the type of control-variable of the for-statement.
: The initial-value and the final-value shall be
: assignment-compatible with the type possesed by the
: control-variable if the statement of the for-statement
: is executed.
Compatible type for integer subrange means that any integer
value is OK. Assignment-compatible means that values must
be in range, but is only required when loop body is
actually executed.