for-loops and subrange types

Waldek Hebisch hebisch at math.uni.wroc.pl
Fri Apr 26 22:22:58 CEST 2013


> 
> 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.


-- 
                              Waldek Hebisch
hebisch at math.uni.wroc.pl 



More information about the Gpc mailing list